irqflags.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * include/asm-powerpc/irqflags.h
  3. *
  4. * IRQ flags handling
  5. */
  6. #ifndef _ASM_IRQFLAGS_H
  7. #define _ASM_IRQFLAGS_H
  8. #ifndef __ASSEMBLY__
  9. /*
  10. * Get definitions for raw_local_save_flags(x), etc.
  11. */
  12. #include <asm-powerpc/hw_irq.h>
  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. 96: stb en,PACASOFTIRQEN(r13)
  33. #else
  34. #define TRACE_ENABLE_INTS
  35. #define TRACE_DISABLE_INTS
  36. #define TRACE_AND_RESTORE_IRQ_PARTIAL(en,skip)
  37. #define TRACE_AND_RESTORE_IRQ(en) \
  38. stb en,PACASOFTIRQEN(r13)
  39. #endif
  40. #endif
  41. #endif