9 #define LFLUSH_I_AND_D 0x00000808
12 /* process bits for task_struct.flags */
13 #define PF_TRACESYS_OFF 3
14 #define PF_TRACESYS_BIT 5
15 #define PF_PTRACED_OFF 3
16 #define PF_PTRACED_BIT 4
17 #define PF_DTRACE_OFF 1
18 #define PF_DTRACE_BIT 5
21 * NOTE! The single-stepping code assumes that all interrupt handlers
22 * start by saving SYSCFG on the stack with their first instruction.
25 /* This one is used for exceptions, emulation, and NMI. It doesn't push
26 RETI and doesn't do cli. */
27 #define SAVE_ALL_SYS save_context_no_interrupts
28 /* This is used for all normal interrupts. It saves a minimum of registers
29 to the stack, loads the IRQ number, and jumps to common code. */
30 #define INTERRUPT_ENTRY(N) \
33 [--sp] = P0; /*orig_p0*/ \
34 [--sp] = R0; /*orig_r0*/ \
35 [--sp] = (R7:0,P5:0); \
37 jump __common_int_entry;
39 /* For timer interrupts, we need to save IPEND, since the user_mode
40 macro accesses it to determine where to account time. */
41 #define TIMER_INTERRUPT_ENTRY(N) \
44 [--sp] = P0; /*orig_p0*/ \
45 [--sp] = R0; /*orig_r0*/ \
46 [--sp] = (R7:0,P5:0); \
51 jump __common_int_entry;
53 /* This one pushes RETI without using CLI. Interrupts are enabled. */
54 #define SAVE_CONTEXT_SYSCALL save_context_syscall
55 #define SAVE_CONTEXT save_context_with_interrupts
57 #define RESTORE_ALL_SYS restore_context_no_interrupts
58 #define RESTORE_CONTEXT restore_context_with_interrupts
60 #endif /* __ASSEMBLY__ */
61 #endif /* __BFIN_ENTRY_H */