summaryrefslogtreecommitdiff
path: root/arch/arm/kernel/kprobes.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kernel/kprobes.h')
-rw-r--r--arch/arm/kernel/kprobes.h21
1 files changed, 8 insertions, 13 deletions
diff --git a/arch/arm/kernel/kprobes.h b/arch/arm/kernel/kprobes.h
index 3684fc9e27cc..eee8089b1b93 100644
--- a/arch/arm/kernel/kprobes.h
+++ b/arch/arm/kernel/kprobes.h
@@ -19,6 +19,8 @@
#ifndef _ARM_KERNEL_KPROBES_H
#define _ARM_KERNEL_KPROBES_H
+#include "probes.h"
+
/*
* These undefined instructions must be unique and
* reserved solely for kprobes' use.
@@ -27,8 +29,9 @@
#define KPROBE_THUMB16_BREAKPOINT_INSTRUCTION 0xde18
#define KPROBE_THUMB32_BREAKPOINT_INSTRUCTION 0xf7f0a018
-struct decode_header;
-union decode_action;
+enum probes_insn __kprobes
+kprobe_decode_ldmstm(kprobe_opcode_t insn, struct arch_specific_insn *asi,
+ const struct decode_header *h);
typedef enum probes_insn (kprobe_decode_insn_t)(probes_opcode_t,
struct arch_specific_insn *,
@@ -36,21 +39,13 @@ typedef enum probes_insn (kprobe_decode_insn_t)(probes_opcode_t,
#ifdef CONFIG_THUMB2_KERNEL
-enum probes_insn thumb16_kprobe_decode_insn(probes_opcode_t,
- struct arch_specific_insn *,
- const union decode_action *);
-enum probes_insn thumb32_kprobe_decode_insn(probes_opcode_t,
- struct arch_specific_insn *,
- const union decode_action *);
+extern const union decode_action kprobes_t32_actions[];
+extern const union decode_action kprobes_t16_actions[];
#else /* !CONFIG_THUMB2_KERNEL */
-enum probes_insn arm_kprobe_decode_insn(probes_opcode_t,
- struct arch_specific_insn *,
- const union decode_action *);
+extern const union decode_action kprobes_arm_actions[];
#endif
-#include "probes.h"
-
#endif /* _ARM_KERNEL_KPROBES_H */