home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / powerpc / include / asm / irqflags.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  994 b   |  44 lines

  1. /*
  2.  * IRQ flags handling
  3.  */
  4. #ifndef _ASM_IRQFLAGS_H
  5. #define _ASM_IRQFLAGS_H
  6.  
  7. #ifndef __ASSEMBLY__
  8. /*
  9.  * Get definitions for raw_local_save_flags(x), etc.
  10.  */
  11. #include <asm/hw_irq.h>
  12.  
  13. #else
  14. #ifdef CONFIG_TRACE_IRQFLAGS
  15. /*
  16.  * Most of the CPU's IRQ-state tracing is done from assembly code; we
  17.  * have to call a C function so call a wrapper that saves all the
  18.  * C-clobbered registers.
  19.  */
  20. #define TRACE_ENABLE_INTS    bl .trace_hardirqs_on
  21. #define TRACE_DISABLE_INTS    bl .trace_hardirqs_off
  22. #define TRACE_AND_RESTORE_IRQ_PARTIAL(en,skip)    \
  23.     cmpdi    en,0;                \
  24.     bne    95f;                \
  25.     stb    en,PACASOFTIRQEN(r13);        \
  26.     bl    .trace_hardirqs_off;        \
  27.     b    skip;                \
  28. 95:    bl    .trace_hardirqs_on;        \
  29.     li    en,1;
  30. #define TRACE_AND_RESTORE_IRQ(en)        \
  31.     TRACE_AND_RESTORE_IRQ_PARTIAL(en,96f);    \
  32.     stb    en,PACASOFTIRQEN(r13);            \
  33. 96:
  34. #else
  35. #define TRACE_ENABLE_INTS
  36. #define TRACE_DISABLE_INTS
  37. #define TRACE_AND_RESTORE_IRQ_PARTIAL(en,skip)
  38. #define TRACE_AND_RESTORE_IRQ(en)        \
  39.     stb    en,PACASOFTIRQEN(r13)
  40. #endif
  41. #endif
  42.  
  43. #endif
  44.