|
@@ -49,6 +49,13 @@
|
|
|
|
|
|
/* Attach to insert probes on any functions which should be ignored*/
|
|
|
#define __kprobes __attribute__((__section__(".kprobes.text"))) notrace
|
|
|
+#else /* CONFIG_KPROBES */
|
|
|
+typedef int kprobe_opcode_t;
|
|
|
+struct arch_specific_insn {
|
|
|
+ int dummy;
|
|
|
+};
|
|
|
+#define __kprobes notrace
|
|
|
+#endif /* CONFIG_KPROBES */
|
|
|
|
|
|
struct kprobe;
|
|
|
struct pt_regs;
|
|
@@ -131,23 +138,6 @@ struct jprobe {
|
|
|
/* For backward compatibility with old code using JPROBE_ENTRY() */
|
|
|
#define JPROBE_ENTRY(handler) (handler)
|
|
|
|
|
|
-DECLARE_PER_CPU(struct kprobe *, current_kprobe);
|
|
|
-DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
|
|
|
-
|
|
|
-#ifdef CONFIG_KRETPROBES
|
|
|
-extern void arch_prepare_kretprobe(struct kretprobe_instance *ri,
|
|
|
- struct pt_regs *regs);
|
|
|
-extern int arch_trampoline_kprobe(struct kprobe *p);
|
|
|
-#else /* CONFIG_KRETPROBES */
|
|
|
-static inline void arch_prepare_kretprobe(struct kretprobe *rp,
|
|
|
- struct pt_regs *regs)
|
|
|
-{
|
|
|
-}
|
|
|
-static inline int arch_trampoline_kprobe(struct kprobe *p)
|
|
|
-{
|
|
|
- return 0;
|
|
|
-}
|
|
|
-#endif /* CONFIG_KRETPROBES */
|
|
|
/*
|
|
|
* Function-return probe -
|
|
|
* Note:
|
|
@@ -188,6 +178,25 @@ struct kprobe_blackpoint {
|
|
|
unsigned long range;
|
|
|
};
|
|
|
|
|
|
+#ifdef CONFIG_KPROBES
|
|
|
+DECLARE_PER_CPU(struct kprobe *, current_kprobe);
|
|
|
+DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
|
|
|
+
|
|
|
+#ifdef CONFIG_KRETPROBES
|
|
|
+extern void arch_prepare_kretprobe(struct kretprobe_instance *ri,
|
|
|
+ struct pt_regs *regs);
|
|
|
+extern int arch_trampoline_kprobe(struct kprobe *p);
|
|
|
+#else /* CONFIG_KRETPROBES */
|
|
|
+static inline void arch_prepare_kretprobe(struct kretprobe *rp,
|
|
|
+ struct pt_regs *regs)
|
|
|
+{
|
|
|
+}
|
|
|
+static inline int arch_trampoline_kprobe(struct kprobe *p)
|
|
|
+{
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+#endif /* CONFIG_KRETPROBES */
|
|
|
+
|
|
|
extern struct kretprobe_blackpoint kretprobe_blacklist[];
|
|
|
|
|
|
static inline void kretprobe_assert(struct kretprobe_instance *ri,
|
|
@@ -264,10 +273,6 @@ void recycle_rp_inst(struct kretprobe_instance *ri, struct hlist_head *head);
|
|
|
|
|
|
#else /* CONFIG_KPROBES */
|
|
|
|
|
|
-#define __kprobes notrace
|
|
|
-struct jprobe;
|
|
|
-struct kretprobe;
|
|
|
-
|
|
|
static inline struct kprobe *get_kprobe(void *addr)
|
|
|
{
|
|
|
return NULL;
|