linux内核--定时器API
来源:互联网 发布:电脑技术员必备软件 编辑:程序博客网 时间:2024/05/21 14:43
/**<linux/timer.h> 定时器结构体struct timer_list { ........ unsigned long expires; --内核希望定时器执行的jiffies值 void (*function)(unsigned long); --定时器到时时执行的函数 unsigned long data; --传入执行函数的参数*//**<linux/time.h> 该函数将墙钟时间转换为jiffies值extern unsigned long mktime(const unsigned int year, const unsigned int mon, const unsigned int day, const unsigned int hour, const unsigned int min, const unsigned int sec) */#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/timer.h>#include <linux/time.h>#include <linux/moduleparam.h>#include <linux/stat.h>#include <linux/sched.h>static int year;static int mon;static int day;static int hour;static int min;static int sec;static long data;static int flag = 0;static int time;static struct timer_list timer;module_param(year, int, S_IRUGO);module_param(mon, int, S_IRUGO);module_param(day, int, S_IRUGO);module_param(hour, int, S_IRUGO);module_param(min, int, S_IRUGO);module_param(sec, int, S_IRUGO);module_param(data, long, S_IRUGO);module_param(time, int, S_IRUGO);module_param(flag, int, S_IRUGO);void handler(unsigned long data){ int i=0; for (i=0; i<10; i++) { printk(KERN_ALERT "%d ", i); } printk(KERN_ALERT "\n");}static int __init Example_init(void){ unsigned long j = jiffies; printk(KERN_ALERT "Example_init.\n"); init_timer(&timer); //初始化结构体 if (flag) timer.expires = mktime(year, mon, day, hour, min, sec); else timer.expires = j + time; timer.function = handler; timer.data = data; add_timer(&timer); //向内核添加定时器 return 0;}static void __exit Example_exit(void){ printk(KERN_ALERT "Example_exit.\n"); del_timer(&timer); //删除定时器 /**以下函数确保在函数返回时没有其他cpu在运行此定时器函数 int del_timer_sync(struct timer_list *timer) */ return;}MODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("Flying");module_init(Example_init);module_exit(Example_exit);
0 0
- linux内核--定时器API
- linux-内核-内核定时器
- Linux嵌入式 -- 内核 - 内核定时器
- Linux 内核开发 - 内核定时器
- Linux内核定时器
- linux 内核定时器
- linux内核定时器分析
- Linux内核定时器
- Linux内核定时器
- Linux 2.6 内核定时器
- linux内核定时器
- Linux内核定时器
- linux内核定时器编程
- linux内核定时器
- Linux内核定时器
- linux内核定时器
- linux 内核定时器编程
- linux 内核定时器
- java 中类初始化,构造方法,静态成员变量,静态块的加载顺序
- 在win10,64位下安装mysql-5.7.17-winx64解压版
- SpringMVC数据校验、文件上传
- 记一次电话面试
- 各变量字节数
- linux内核--定时器API
- 深度学习流行网络与数据集
- 加载内核出现的错误
- 网球“鹰眼”系统
- java中的并发工具类
- JavaScript性能优化小知识总结
- Mac下su命令提示su:Sorry的解决办法
- CF
- 关于字符串和memset,需要注意的地方