| /* | |
| * arch/arm64/include/asm/probes.h | |
| * | |
| * Copyright (C) 2013 Linaro Limited | |
| * | |
| * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License version 2 as | |
| * published by the Free Software Foundation. | |
| * | |
| * This program is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * General Public License for more details. | |
| */ | |
| #ifndef _ARM_PROBES_H | |
| #define _ARM_PROBES_H | |
| typedef u32 probe_opcode_t; | |
| typedef void (probes_handler_t) (u32 opcode, long addr, struct pt_regs *); | |
| /* architecture specific copy of original instruction */ | |
| struct arch_probe_insn { | |
| probe_opcode_t *insn; | |
| pstate_check_t *pstate_cc; | |
| probes_handler_t *handler; | |
| /* restore address after step xol */ | |
| unsigned long restore; | |
| }; | |
| #ifdef CONFIG_KPROBES | |
| typedef u32 kprobe_opcode_t; | |
| struct arch_specific_insn { | |
| struct arch_probe_insn api; | |
| }; | |
| #endif | |
| #endif |