1 #include <linux/module.h>
2 #include <asm/percpu.h>
3 #include <ks_manager.h>
8 DEFINE_PER_CPU(struct kern_probe *, gpKernProbe) = NULL;
9 EXPORT_PER_CPU_SYMBOL_GPL(gpKernProbe);
11 unsigned long def_jprobe_event_pre_handler(struct kern_probe *p,
14 __get_cpu_var(gpKernProbe) = p;
18 EXPORT_SYMBOL_GPL(def_jprobe_event_pre_handler);
20 void def_jprobe_event_handler(unsigned long arg0, unsigned long arg1,
21 unsigned long arg2, unsigned long arg3,
22 unsigned long arg4, unsigned long arg5)
24 struct kern_probe *p = __get_cpu_var(gpKernProbe);
26 pack_event_info(KS_PROBE_ID, RECORD_ENTRY, "pxxxxxx", p->jp.kp.addr,
27 arg0, arg1, arg2, arg3, arg4, arg5);
30 EXPORT_SYMBOL_GPL(def_jprobe_event_handler);
32 int def_retprobe_event_handler(struct kretprobe_instance *ri,
33 struct pt_regs *regs, struct kern_probe *p)
37 ret_val = regs_return_value(regs);
38 pack_event_info(KS_PROBE_ID, RECORD_RET, "pd", p->rp.kp.addr, ret_val);
42 EXPORT_SYMBOL_GPL(def_retprobe_event_handler);