Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */ 2 : : #ifndef _ASMARM_TRAP_H 3 : : #define _ASMARM_TRAP_H 4 : : 5 : : #include <linux/list.h> 6 : : 7 : : struct pt_regs; 8 : : struct task_struct; 9 : : 10 : : struct undef_hook { 11 : : struct list_head node; 12 : : u32 instr_mask; 13 : : u32 instr_val; 14 : : u32 cpsr_mask; 15 : : u32 cpsr_val; 16 : : int (*fn)(struct pt_regs *regs, unsigned int instr); 17 : : }; 18 : : 19 : : void register_undef_hook(struct undef_hook *hook); 20 : : void unregister_undef_hook(struct undef_hook *hook); 21 : : 22 : : static inline int __in_irqentry_text(unsigned long ptr) 23 : : { 24 : : extern char __irqentry_text_start[]; 25 : : extern char __irqentry_text_end[]; 26 : : 27 [ # # # # ]: 0 : return ptr >= (unsigned long)&__irqentry_text_start && 28 : 0 : ptr < (unsigned long)&__irqentry_text_end; 29 : : } 30 : : 31 : : extern void __init early_trap_init(void *); 32 : : extern void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame); 33 : : extern void ptrace_break(struct pt_regs *regs); 34 : : 35 : : extern void *vectors_page; 36 : : 37 : : #endif