linux 内核定时器 timer_list
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux 内核定时器timer_list
linux 内核使用timer_list 结构体当作定时器。#include “linux/timer.h”
#include “linux/module.h”MODULE_LICENSE(“GPL”);//不加这句话,虽然不影响功能,但有时候程序执行时会打印错误,类似Disabling lock debugging //due to kernel taint 之类的话struct timer_list tm;static int num;static void func(){ num++; mod_timer(&tm,jiffies+1*HZ); //timer 一旦超时,就
会执行fuc 函数,然后永远的休眠,//所以如果没有这mod_timer,hello world 只会执行一次,也就是timer 第一次超时时执行的那次。//mod_timer
可以激活timer。如果你没有add_timer(),激活也没用printk(“hello,world\n ,%d”,num);}static int timer_init(void){ init_timer(&tm); //初始化定时
器,必须在所有下面复制操作前进行定时器初始化tm.expires = jiffies +1*HZ;
//超时1 秒,执行function tm.function = func; //超时后执行的函数add_timer(&tm); //将定时器加入定时器等待队列中return 0;}static void timer_destory(void){ del_timer(&tm); printk(“remove timer\n”);}tips:感谢大家
的阅读,本文由我司收集整编。仅供参阅!