2011-04-20 10:52:38 +01:00
/*
* arch / arm / kernel / kprobes . h
*
2011-04-26 15:15:56 +01:00
* Copyright ( C ) 2011 Jon Medhurst < tixy @ yxit . co . uk > .
*
* Some contents moved here from arch / arm / include / asm / kprobes . h which is
2011-04-20 10:52:38 +01:00
* Copyright ( C ) 2006 , 2007 Motorola Inc .
*
* 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_KERNEL_KPROBES_H
# define _ARM_KERNEL_KPROBES_H
2014-03-06 18:12:07 -05:00
# include "probes.h"
2011-04-20 10:52:38 +01:00
/*
2011-04-19 17:18:35 +01:00
* These undefined instructions must be unique and
2011-04-20 10:52:38 +01:00
* reserved solely for kprobes ' use .
*/
2011-06-16 17:22:37 +01:00
# define KPROBE_ARM_BREAKPOINT_INSTRUCTION 0x07f001f8
2011-04-19 17:18:35 +01:00
# define KPROBE_THUMB16_BREAKPOINT_INSTRUCTION 0xde18
# define KPROBE_THUMB32_BREAKPOINT_INSTRUCTION 0xf7f0a018
2014-03-06 18:12:07 -05:00
enum probes_insn __kprobes
2014-03-05 21:41:29 -05:00
kprobe_decode_ldmstm ( kprobe_opcode_t insn , struct arch_probes_insn * asi ,
2014-03-06 18:12:07 -05:00
const struct decode_header * h ) ;
2011-04-20 10:52:38 +01:00
2014-03-05 21:23:42 -05:00
typedef enum probes_insn ( kprobe_decode_insn_t ) ( probes_opcode_t ,
2014-03-05 21:41:29 -05:00
struct arch_probes_insn * ,
2014-03-05 21:40:12 -05:00
bool ,
2014-03-06 18:06:43 -05:00
const union decode_action * ) ;
2011-04-19 17:56:58 +01:00
# ifdef CONFIG_THUMB2_KERNEL
2014-03-06 18:12:07 -05:00
extern const union decode_action kprobes_t32_actions [ ] ;
extern const union decode_action kprobes_t16_actions [ ] ;
2011-04-19 17:56:58 +01:00
# else /* !CONFIG_THUMB2_KERNEL */
2014-03-06 18:12:07 -05:00
extern const union decode_action kprobes_arm_actions [ ] ;
2014-03-06 18:06:43 -05:00
2011-04-19 17:56:58 +01:00
# endif
2011-04-20 10:52:38 +01:00
# endif /* _ARM_KERNEL_KPROBES_H */