1b2531dd5SDavid A. Long /* 2b2531dd5SDavid A. Long * arch/arm/include/asm/probes.h 3b2531dd5SDavid A. Long * 4b2531dd5SDavid A. Long * Original contents copied from arch/arm/include/asm/kprobes.h 5b2531dd5SDavid A. Long * which contains the following notice... 6b2531dd5SDavid A. Long * 7b2531dd5SDavid A. Long * Copyright (C) 2006, 2007 Motorola Inc. 8b2531dd5SDavid A. Long * 9b2531dd5SDavid A. Long * This program is free software; you can redistribute it and/or modify 10b2531dd5SDavid A. Long * it under the terms of the GNU General Public License version 2 as 11b2531dd5SDavid A. Long * published by the Free Software Foundation. 12b2531dd5SDavid A. Long * 13b2531dd5SDavid A. Long * This program is distributed in the hope that it will be useful, 14b2531dd5SDavid A. Long * but WITHOUT ANY WARRANTY; without even the implied warranty of 15b2531dd5SDavid A. Long * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16b2531dd5SDavid A. Long * General Public License for more details. 17b2531dd5SDavid A. Long */ 18b2531dd5SDavid A. Long 19b2531dd5SDavid A. Long #ifndef _ASM_PROBES_H 20b2531dd5SDavid A. Long #define _ASM_PROBES_H 21b2531dd5SDavid A. Long 22f145d664SDavid A. Long typedef u32 probes_opcode_t; 23c18377c3SDavid A. Long 24b4cd605cSDavid A. Long struct arch_probes_insn; 2547e190faSDavid A. Long typedef void (probes_insn_handler_t)(probes_opcode_t, 26b4cd605cSDavid A. Long struct arch_probes_insn *, 277579f4b3SDavid A. Long struct pt_regs *); 28f145d664SDavid A. Long typedef unsigned long (probes_check_cc)(unsigned long); 2947e190faSDavid A. Long typedef void (probes_insn_singlestep_t)(probes_opcode_t, 30b4cd605cSDavid A. Long struct arch_probes_insn *, 317579f4b3SDavid A. Long struct pt_regs *); 3247e190faSDavid A. Long typedef void (probes_insn_fn_t)(void); 33b2531dd5SDavid A. Long 34b2531dd5SDavid A. Long /* Architecture specific copy of original instruction. */ 35b4cd605cSDavid A. Long struct arch_probes_insn { 36f145d664SDavid A. Long probes_opcode_t *insn; 3747e190faSDavid A. Long probes_insn_handler_t *insn_handler; 38f145d664SDavid A. Long probes_check_cc *insn_check_cc; 3947e190faSDavid A. Long probes_insn_singlestep_t *insn_singlestep; 4047e190faSDavid A. Long probes_insn_fn_t *insn_fn; 41b2531dd5SDavid A. Long }; 42b2531dd5SDavid A. Long 43b2531dd5SDavid A. Long #endif 44