#ifndef _ASMARM_TRAP_H | |
#define _ASMARM_TRAP_H | |
#include <linux/list.h> | |
struct undef_hook { | |
struct list_head node; | |
u32 instr_mask; | |
u32 instr_val; | |
u32 cpsr_mask; | |
u32 cpsr_val; | |
int (*fn)(struct pt_regs *regs, unsigned int instr); | |
}; | |
void register_undef_hook(struct undef_hook *hook); | |
void unregister_undef_hook(struct undef_hook *hook); | |
static inline int in_exception_text(unsigned long ptr) | |
{ | |
extern char __exception_text_start[]; | |
extern char __exception_text_end[]; | |
return ptr >= (unsigned long)&__exception_text_start && | |
ptr < (unsigned long)&__exception_text_end; | |
} | |
#endif |