move everything out of trunk
[lttv.git] / tests / kernel / genkprobe.c
1 #include <linux/module.h>
2 #include <linux/kernel.h>
3 #include <linux/init.h>
4 #include <linux/kprobes.h>
5
6 MODULE_LICENSE("GPL");
7
8 static int kph(struct kprobe *kp, struct pt_regs *regs)
9 {
10 return 0;
11 }
12 static int kpfh(struct kprobe *kp, struct pt_regs *regs, int nr)
13 {
14 printk("fault occurred on kprobes at %p(@%lx:%d)\n", kp->addr, regs->ip, nr);
15 return 0;
16 }
17 static struct kprobe kp[] = {
18 [0]={.pre_handler=kph, .fault_handler=kpfh, .symbol_name="sys_accept"},
19 [1]={.pre_handler=kph, .fault_handler=kpfh, .symbol_name="sys_access"},
20 [2]={.pre_handler=kph, .fault_handler=kpfh, .symbol_name="sys_acct"},
21 [3]={.pre_handler=kph, .fault_handler=kpfh, .symbol_name="sys_add_key"},
22 [4]={.pre_handler=kph, .fault_handler=kpfh, .symbol_name="sys_adjtimex"},
23 [5]={.pre_handler=kph, .fault_handler=kpfh, .symbol_name="sys_alarm"},
24 [6]={.pre_handler=kph, .fault_handler=kpfh, .symbol_name="sys_bdflush"},
25 };
26 #define NRPB 7
27
28 static struct kprobe *kps[NRPB];
29
30 int __gen_init(void)
31 {
32 int ret, i;
33 for (i=0;i<NRPB;i++)
34 kps[i]=&kp[i];
35 printk("registering...");
36 ret = register_kprobes(kps, NRPB);
37 if (ret) {
38 printk("failed to register kprobes\n");
39 return ret;
40 }
41 printk("registered\n");
42 return 0;
43 }
44
45 void __gen_exit(void)
46 {
47 printk("unregistering...");
48 unregister_kprobes(kps, NRPB);
49 printk("unregistered\n");
50 }
51
52 module_init(__gen_init);
53 module_exit(__gen_exit);
This page took 0.031764 seconds and 4 git commands to generate.