Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /* marker-example.c
  2  *
  3  * Executes a marker when /proc/marker-example is opened.
  4  *
  5  * (C) Copyright 2007 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
  6  *
  7  * This file is released under the GPLv2.
  8  * See the file COPYING for more details.
  9  */
 10 
 11 #include <linux/module.h>
 12 #include <linux/marker.h>
 13 #include <linux/sched.h>
 14 #include <linux/proc_fs.h>
 15 
 16 struct proc_dir_entry *pentry_example;
 17 
 18 static int my_open(struct inode *inode, struct file *file)
 19 {
 20         int i;
 21 
 22         trace_mark(subsystem_event, "integer %d string %s", 123,
 23                 "example string");
 24         for (i = 0; i < 10; i++)
 25                 trace_mark(subsystem_eventb, MARK_NOARGS);
 26         return -EPERM;
 27 }
 28 
 29 static struct file_operations mark_ops = {
 30         .open = my_open,
 31 };
 32 
 33 static int __init example_init(void)
 34 {
 35         printk(KERN_ALERT "example init\n");
 36         pentry_example = proc_create("marker-example", 0444, NULL, &mark_ops);
 37         if (!pentry_example)
 38                 return -EPERM;
 39         return 0;
 40 }
 41 
 42 static void __exit example_exit(void)
 43 {
 44         printk(KERN_ALERT "example exit\n");
 45         remove_proc_entry("marker-example", NULL);
 46 }
 47 
 48 module_init(example_init)
 49 module_exit(example_exit)
 50 
 51 MODULE_LICENSE("GPL");
 52 MODULE_AUTHOR("Mathieu Desnoyers");
 53 MODULE_DESCRIPTION("Marker example");
 54 
  This page was automatically generated by the LXR engine.