• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/powerpc/include/asm/
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