内核定时器 的简单例子

 1 /* 内核定时器的使用 设定5秒后调用 定时器处理函数
  2  * 并向处理函数传递 参数 3 (eg 常用与传递设备结构体指针)
  3  * 可惜 只能调用一次服务处理程序
  4  * 下一步将整合 工作队列 循环调用 处理函数 获取数据
  5  */
  6 #include<linux/kernel.h>
  7 #include<linux/module.h>
  8 #include<linux/init.h>
  9 #include<linux/timer.h> /*timer*/
 10 #include<asm/uaccess.h> /*jiffies*/
 11
 12 MODULE_LICENSE("GPL");
 13 MODULE_AUTHOR("David Xie");
 14 MODULE_DESCRIPTION("Timer Module");
 15
 16
 17 struct timer_list timer;
 18
 19 void timer_function(int para)
 20 {
 21     printk("<0> Timer Expired and para is %d !!\n", para);
 22 }
 23 int timer_init()
 24 {
 25     printk("<0> timer_init!\n");
 26     init_timer(&timer);
 27     timer.data = 3;
 28     timer.expires = jiffies + (5 * HZ);
 29     timer.function = timer_function;
 30     add_timer(&timer);
 31
 32     return 0;
 33 }
 34
 35 void timer_exit()
 36 {
 37     printk("<0>timer exit!\n");
 38     del_timer(&timer);
 39 }
 40
 41 module_init(timer_init);
 42 module_exit(timer_exit);
 43



你可能感兴趣的:(timer,工作,struct,list,function,Module)