e1000: don't strip vlan ID if 8021q claims it
[linux-2.6/sactl.git] / include / asm-s390 / irqflags.h
blob3b566a5b3cc73e19d2487931283da12a0b008d65
1 /*
2 * include/asm-s390/irqflags.h
4 * Copyright (C) IBM Corp. 2006
5 * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
6 */
8 #ifndef __ASM_IRQFLAGS_H
9 #define __ASM_IRQFLAGS_H
11 #ifdef __KERNEL__
13 /* interrupt control.. */
14 #define raw_local_irq_enable() ({ \
15 unsigned long __dummy; \
16 __asm__ __volatile__ ( \
17 "stosm 0(%1),0x03" \
18 : "=m" (__dummy) : "a" (&__dummy) : "memory" ); \
21 #define raw_local_irq_disable() ({ \
22 unsigned long __flags; \
23 __asm__ __volatile__ ( \
24 "stnsm 0(%1),0xfc" : "=m" (__flags) : "a" (&__flags) ); \
25 __flags; \
28 #define raw_local_save_flags(x) \
29 do { \
30 typecheck(unsigned long, x); \
31 __asm__ __volatile__("stosm 0(%1),0" : "=m" (x) : "a" (&x), "m" (x) ); \
32 } while (0)
34 #define raw_local_irq_restore(x) \
35 do { \
36 typecheck(unsigned long, x); \
37 __asm__ __volatile__("ssm 0(%0)" : : "a" (&x), "m" (x) : "memory"); \
38 } while (0)
40 #define raw_irqs_disabled() \
41 ({ \
42 unsigned long flags; \
43 raw_local_save_flags(flags); \
44 !((flags >> __FLAG_SHIFT) & 3); \
47 static inline int raw_irqs_disabled_flags(unsigned long flags)
49 return !((flags >> __FLAG_SHIFT) & 3);
52 /* For spinlocks etc */
53 #define raw_local_irq_save(x) ((x) = raw_local_irq_disable())
55 #endif /* __KERNEL__ */
56 #endif /* __ASM_IRQFLAGS_H */