Viewing file: traps.h (1.25 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef _ASMARM_TRAP_H #define _ASMARM_TRAP_H
#include <linux/list.h>
struct pt_regs; struct task_struct;
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);
#ifdef CONFIG_FUNCTION_GRAPH_TRACER static inline int __in_irqentry_text(unsigned long ptr) { extern char __irqentry_text_start[]; extern char __irqentry_text_end[];
return ptr >= (unsigned long)&__irqentry_text_start && ptr < (unsigned long)&__irqentry_text_end; } #else static inline int __in_irqentry_text(unsigned long ptr) { return 0; } #endif
static inline int in_exception_text(unsigned long ptr) { extern char __exception_text_start[]; extern char __exception_text_end[]; int in;
in = ptr >= (unsigned long)&__exception_text_start && ptr < (unsigned long)&__exception_text_end;
return in ? : __in_irqentry_text(ptr); }
extern void __init early_trap_init(void *); extern void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame); extern void ptrace_break(struct task_struct *tsk, struct pt_regs *regs);
extern void *vectors_page;
#endif
|