1 /* 2 * arch/arm64/include/asm/probes.h 3 * 4 * Copyright (C) 2013 Linaro Limited 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * General Public License for more details. 14 */ 15 #ifndef _ARM_PROBES_H 16 #define _ARM_PROBES_H 17 18 struct kprobe; 19 struct arch_specific_insn; 20 21 typedef u32 kprobe_opcode_t; 22 typedef unsigned long (kprobes_pstate_check_t)(unsigned long); 23 typedef void (kprobes_handler_t) (u32 opcode, long addr, struct pt_regs *); 24 25 /* architecture specific copy of original instruction */ 26 struct arch_specific_insn { 27 kprobe_opcode_t *insn; 28 kprobes_pstate_check_t *pstate_cc; 29 kprobes_handler_t *handler; 30 /* restore address after step xol */ 31 unsigned long restore; 32 }; 33 34 #endif 35