1 /* 2 * tracepoint-probe-sample2.c 3 * 4 * 2nd sample tracepoint probes. 5 */ 6 7 #include <linux/module.h> 8 #include <linux/fs.h> 9 #include "tp-samples-trace.h" 10 11 /* 12 * Here the caller only guarantees locking for struct file and struct inode. 13 * Locking must therefore be done in the probe to use the dentry. 14 */ probe_subsys_event(void * ignore,struct inode * inode,struct file * file)15static void probe_subsys_event(void *ignore, 16 struct inode *inode, struct file *file) 17 { 18 printk(KERN_INFO "Event is encountered with inode number %lu\n", 19 inode->i_ino); 20 } 21 tp_sample_trace_init(void)22static int __init tp_sample_trace_init(void) 23 { 24 int ret; 25 26 ret = register_trace_subsys_event(probe_subsys_event, NULL); 27 WARN_ON(ret); 28 29 return 0; 30 } 31 32 module_init(tp_sample_trace_init); 33 tp_sample_trace_exit(void)34static void __exit tp_sample_trace_exit(void) 35 { 36 unregister_trace_subsys_event(probe_subsys_event, NULL); 37 tracepoint_synchronize_unregister(); 38 } 39 40 module_exit(tp_sample_trace_exit); 41 42 MODULE_LICENSE("GPL"); 43 MODULE_AUTHOR("Mathieu Desnoyers"); 44 MODULE_DESCRIPTION("Tracepoint Probes Samples"); 45