f8e77313 |
1 | /* test-mark.c |
2 | * |
3 | */ |
4 | |
5 | #include <linux/marker.h> |
6 | #include <linux/module.h> |
7 | #include <linux/proc_fs.h> |
8 | #include <linux/sched.h> |
9576ead5 |
9 | #include <asm/ptrace.h> |
f8e77313 |
10 | |
996926d1 |
11 | volatile int x = 7; |
f8e77313 |
12 | |
13 | struct proc_dir_entry *pentry = NULL; |
14 | |
9576ead5 |
15 | static inline void test(struct pt_regs * regs) |
16 | { |
17 | MARK(kernel_debug_test, "%d %ld %p", 2, regs->eip, regs); |
18 | } |
19 | |
f8e77313 |
20 | static int my_open(struct inode *inode, struct file *file) |
21 | { |
abfc2016 |
22 | unsigned int i; |
23 | |
24 | for(i=0; i<2; i++) { |
25 | MARK(subsys_mark1, "%d", 1); |
abfc2016 |
26 | } |
996926d1 |
27 | MARK(subsys_mark2, "%d %s %s", 2, "blah2", "blahx"); |
abfc2016 |
28 | MARK(subsys_mark3, "%d %s %s", x, "blah3", "blah5"); |
bc82195a |
29 | MARK(subsys_mark3, "%d %s %s", x, "blah3", "blah5"); |
9576ead5 |
30 | test(NULL); |
31 | test(NULL); |
f8e77313 |
32 | |
33 | return -EPERM; |
34 | } |
35 | |
36 | |
37 | static struct file_operations my_operations = { |
7c26985b |
38 | .open = my_open, |
f8e77313 |
39 | }; |
40 | |
41 | int init_module(void) |
42 | { |
7c26985b |
43 | pentry = create_proc_entry("testmark", 0444, NULL); |
44 | if (pentry) |
45 | pentry->proc_fops = &my_operations; |
9576ead5 |
46 | |
47 | marker_list_probe(NULL); |
48 | |
f8e77313 |
49 | return 0; |
50 | } |
51 | |
52 | void cleanup_module(void) |
53 | { |
54 | remove_proc_entry("testmark", NULL); |
55 | } |
56 | |
57 | MODULE_LICENSE("GPL"); |
58 | MODULE_AUTHOR("Mathieu Desnoyers"); |
59 | MODULE_DESCRIPTION("Marker Test"); |
60 | |