diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-10-17 09:21:37 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-10-17 09:21:37 +0000 |
commit | 0c66a95b41788ae5df61ef70670a86199c8ecfe7 (patch) | |
tree | 90a5294e5bf94de38a0f19fe3b998442f9ce819f | |
parent | 51e9c38658f243ba095cf23bfbb396789a25e285 (diff) | |
download | xen-0c66a95b41788ae5df61ef70670a86199c8ecfe7.tar.gz xen-0c66a95b41788ae5df61ef70670a86199c8ecfe7.tar.bz2 xen-0c66a95b41788ae5df61ef70670a86199c8ecfe7.zip |
bitkeeper revision 1.527 (3f8fb4a16LPOSuutnwr8zgDB3Ws1Kw)
system.h:
Slightly better restore_flags in xenolinux.
-rw-r--r-- | xenolinux-2.4.22-sparse/include/asm-xeno/system.h | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/xenolinux-2.4.22-sparse/include/asm-xeno/system.h b/xenolinux-2.4.22-sparse/include/asm-xeno/system.h index 12bfe68c14..3b59252ca3 100644 --- a/xenolinux-2.4.22-sparse/include/asm-xeno/system.h +++ b/xenolinux-2.4.22-sparse/include/asm-xeno/system.h @@ -320,21 +320,6 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, #define set_wmb(var, value) do { var = value; wmb(); } while (0) -#define __save_flags(x) \ -do { \ - (x) = test_bit(EVENTS_MASTER_ENABLE_BIT, \ - &HYPERVISOR_shared_info->events_mask); \ - barrier(); \ -} while (0) - -#define __restore_flags(x) \ -do { \ - shared_info_t *_shared = HYPERVISOR_shared_info; \ - if (x) set_bit(EVENTS_MASTER_ENABLE_BIT, &_shared->events_mask); \ - barrier(); \ - if ( unlikely(_shared->events) && (x) ) do_hypervisor_callback(NULL); \ -} while (0) - #define __cli() \ do { \ clear_bit(EVENTS_MASTER_ENABLE_BIT, &HYPERVISOR_shared_info->events_mask);\ @@ -349,6 +334,15 @@ do { \ if ( unlikely(_shared->events) ) do_hypervisor_callback(NULL); \ } while (0) +#define __save_flags(x) \ +do { \ + (x) = test_bit(EVENTS_MASTER_ENABLE_BIT, \ + &HYPERVISOR_shared_info->events_mask); \ + barrier(); \ +} while (0) + +#define __restore_flags(x) do { if (x) __sti(); } while (0) + #define safe_halt() ((void)0) #define __save_and_cli(x) do { __save_flags(x); __cli(); } while(0); |