diff options
Diffstat (limited to 'arch/h8300/include/asm/system.h')
-rw-r--r-- | arch/h8300/include/asm/system.h | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/arch/h8300/include/asm/system.h b/arch/h8300/include/asm/system.h index 16bf1560ff68..2c2382e50d93 100644 --- a/arch/h8300/include/asm/system.h +++ b/arch/h8300/include/asm/system.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _H8300_SYSTEM_H | 2 | #define _H8300_SYSTEM_H |
3 | 3 | ||
4 | #include <linux/linkage.h> | 4 | #include <linux/linkage.h> |
5 | #include <linux/irqflags.h> | ||
5 | 6 | ||
6 | struct pt_regs; | 7 | struct pt_regs; |
7 | 8 | ||
@@ -51,31 +52,8 @@ asmlinkage void resume(void); | |||
51 | (last) = _last; \ | 52 | (last) = _last; \ |
52 | } | 53 | } |
53 | 54 | ||
54 | #define __sti() asm volatile ("andc #0x7f,ccr") | ||
55 | #define __cli() asm volatile ("orc #0x80,ccr") | ||
56 | |||
57 | #define __save_flags(x) \ | ||
58 | asm volatile ("stc ccr,%w0":"=r" (x)) | ||
59 | |||
60 | #define __restore_flags(x) \ | ||
61 | asm volatile ("ldc %w0,ccr": :"r" (x)) | ||
62 | |||
63 | #define irqs_disabled() \ | ||
64 | ({ \ | ||
65 | unsigned char flags; \ | ||
66 | __save_flags(flags); \ | ||
67 | ((flags & 0x80) == 0x80); \ | ||
68 | }) | ||
69 | |||
70 | #define iret() __asm__ __volatile__ ("rte": : :"memory", "sp", "cc") | 55 | #define iret() __asm__ __volatile__ ("rte": : :"memory", "sp", "cc") |
71 | 56 | ||
72 | /* For spinlocks etc */ | ||
73 | #define local_irq_disable() __cli() | ||
74 | #define local_irq_enable() __sti() | ||
75 | #define local_irq_save(x) ({ __save_flags(x); local_irq_disable(); }) | ||
76 | #define local_irq_restore(x) __restore_flags(x) | ||
77 | #define local_save_flags(x) __save_flags(x) | ||
78 | |||
79 | /* | 57 | /* |
80 | * Force strict CPU ordering. | 58 | * Force strict CPU ordering. |
81 | * Not really required on H8... | 59 | * Not really required on H8... |