Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[pandora-kernel.git] / arch / um / include / asm / system.h
1 #ifndef __UM_SYSTEM_GENERIC_H
2 #define __UM_SYSTEM_GENERIC_H
3
4 #include "sysdep/system.h"
5
6 extern int get_signals(void);
7 extern int set_signals(int enable);
8 extern void block_signals(void);
9 extern void unblock_signals(void);
10
11 #define local_save_flags(flags) do { typecheck(unsigned long, flags); \
12                                      (flags) = get_signals(); } while(0)
13 #define local_irq_restore(flags) do { typecheck(unsigned long, flags); \
14                                       set_signals(flags); } while(0)
15
16 #define local_irq_save(flags) do { local_save_flags(flags); \
17                                    local_irq_disable(); } while(0)
18
19 #define local_irq_enable() unblock_signals()
20 #define local_irq_disable() block_signals()
21
22 #define irqs_disabled()                 \
23 ({                                      \
24         unsigned long flags;            \
25         local_save_flags(flags);        \
26         (flags == 0);                   \
27 })
28
29 extern void *_switch_to(void *prev, void *next, void *last);
30 #define switch_to(prev, next, last) prev = _switch_to(prev, next, last)
31
32 #endif