linux/arch/powerpc/include/asm/irqflags.h
<<
>>
Prefs
   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;                           \
  2895:     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);          \
  3396:
  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