1 #ifndef _ASMARM_TRAP_H 2 #define _ASMARM_TRAP_H 3 4 #include <linux/list.h> 5 6 struct undef_hook { 7 struct list_head node; 8 u32 instr_mask; 9 u32 instr_val; 10 u32 cpsr_mask; 11 u32 cpsr_val; 12 int (*fn)(struct pt_regs *regs, unsigned int instr); 13 }; 14 15 void register_undef_hook(struct undef_hook *hook); 16 void unregister_undef_hook(struct undef_hook *hook); 17 18 static inline int in_exception_text(unsigned long ptr) 19 { 20 extern char __exception_text_start[]; 21 extern char __exception_text_end[]; 22 23 return ptr >= (unsigned long)&__exception_text_start && 24 ptr < (unsigned long)&__exception_text_end; 25 } 26 27 extern void __init early_trap_init(void); 28 29 #endif 30