diff options
Diffstat (limited to 'include/asm-powerpc/kprobes.h')
-rw-r--r-- | include/asm-powerpc/kprobes.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/asm-powerpc/kprobes.h b/include/asm-powerpc/kprobes.h index 3a5dd492588f..b0e40ff32ee0 100644 --- a/include/asm-powerpc/kprobes.h +++ b/include/asm-powerpc/kprobes.h | |||
@@ -64,6 +64,12 @@ typedef unsigned int kprobe_opcode_t; | |||
64 | addr = *(kprobe_opcode_t **)addr; \ | 64 | addr = *(kprobe_opcode_t **)addr; \ |
65 | } else if (name[0] != '.') \ | 65 | } else if (name[0] != '.') \ |
66 | addr = *(kprobe_opcode_t **)addr; \ | 66 | addr = *(kprobe_opcode_t **)addr; \ |
67 | } else { \ | ||
68 | char dot_name[KSYM_NAME_LEN+1]; \ | ||
69 | dot_name[0] = '.'; \ | ||
70 | dot_name[1] = '\0'; \ | ||
71 | strncat(dot_name, name, KSYM_NAME_LEN); \ | ||
72 | addr = (kprobe_opcode_t *)kallsyms_lookup_name(dot_name); \ | ||
67 | } \ | 73 | } \ |
68 | } | 74 | } |
69 | 75 | ||
@@ -87,6 +93,11 @@ extern void arch_remove_kprobe(struct kprobe *p); | |||
87 | struct arch_specific_insn { | 93 | struct arch_specific_insn { |
88 | /* copy of original instruction */ | 94 | /* copy of original instruction */ |
89 | kprobe_opcode_t *insn; | 95 | kprobe_opcode_t *insn; |
96 | /* | ||
97 | * Set in kprobes code, initially to 0. If the instruction can be | ||
98 | * eumulated, this is set to 1, if not, to -1. | ||
99 | */ | ||
100 | int boostable; | ||
90 | }; | 101 | }; |
91 | 102 | ||
92 | struct prev_kprobe { | 103 | struct prev_kprobe { |
@@ -105,5 +116,6 @@ struct kprobe_ctlblk { | |||
105 | 116 | ||
106 | extern int kprobe_exceptions_notify(struct notifier_block *self, | 117 | extern int kprobe_exceptions_notify(struct notifier_block *self, |
107 | unsigned long val, void *data); | 118 | unsigned long val, void *data); |
119 | extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr); | ||
108 | #endif /* __KERNEL__ */ | 120 | #endif /* __KERNEL__ */ |
109 | #endif /* _ASM_POWERPC_KPROBES_H */ | 121 | #endif /* _ASM_POWERPC_KPROBES_H */ |