diff options
author | Jon Medhurst <tixy@yxit.co.uk> | 2011-04-19 12:56:58 -0400 |
---|---|---|
committer | Tixy <tixy@medhuaa1.miniserver.com> | 2011-07-13 13:32:41 -0400 |
commit | 2437170710c4a3dee137a65623960aa7ac82a32e (patch) | |
tree | c886353a398a3e60c148bfd3e3eb7c3a42486d88 /arch/arm/kernel/kprobes.h | |
parent | de41984003ed2315dbb7d58168cc3e72e15b075c (diff) |
ARM: kprobes: Add Thumb instruction decoding stubs
Extend arch_prepare_kprobe to support probing of Thumb code. For
the actual decoding of Thumb instructions, stub functions are
added which currently just reject the probe.
Signed-off-by: Jon Medhurst <tixy@yxit.co.uk>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Diffstat (limited to 'arch/arm/kernel/kprobes.h')
-rw-r--r-- | arch/arm/kernel/kprobes.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/kernel/kprobes.h b/arch/arm/kernel/kprobes.h index 406bb2da7fea..86abfabe83f2 100644 --- a/arch/arm/kernel/kprobes.h +++ b/arch/arm/kernel/kprobes.h | |||
@@ -29,8 +29,21 @@ enum kprobe_insn { | |||
29 | INSN_GOOD_NO_SLOT | 29 | INSN_GOOD_NO_SLOT |
30 | }; | 30 | }; |
31 | 31 | ||
32 | typedef enum kprobe_insn (kprobe_decode_insn_t)(kprobe_opcode_t, | ||
33 | struct arch_specific_insn *); | ||
34 | |||
35 | #ifdef CONFIG_THUMB2_KERNEL | ||
36 | |||
37 | enum kprobe_insn thumb16_kprobe_decode_insn(kprobe_opcode_t, | ||
38 | struct arch_specific_insn *); | ||
39 | enum kprobe_insn thumb32_kprobe_decode_insn(kprobe_opcode_t, | ||
40 | struct arch_specific_insn *); | ||
41 | |||
42 | #else /* !CONFIG_THUMB2_KERNEL */ | ||
43 | |||
32 | enum kprobe_insn arm_kprobe_decode_insn(kprobe_opcode_t, | 44 | enum kprobe_insn arm_kprobe_decode_insn(kprobe_opcode_t, |
33 | struct arch_specific_insn *); | 45 | struct arch_specific_insn *); |
46 | #endif | ||
34 | 47 | ||
35 | void __init arm_kprobe_decode_init(void); | 48 | void __init arm_kprobe_decode_init(void); |
36 | 49 | ||