您的位置:首页 > 运维架构 > Linux

Linux系统下内核定时器的用法

2013-10-07 21:41 405 查看

Linux系统下内核定时器的用法

内核定时器的用法其实很简单
1.需要定义一个timer_list变量timer、先初始化timer
init_timer(&timer);
2.对timer的相关参数赋值
timer.function = fun;
timer.expires = jiffies + TIMER_DELAY;

3.向内核添加定时器
add_timer(&timer);
在定时器时间到的时候,会执行fun,如果继续定时,可以通过在fun中执行
mod_timer(&timer, jiffies + TIMER_DELAY);

4.在不需要的时候通过调用
del_timer(&timer);

比如下面的例子
............
static struct timer_list my_timer;

static void

my_timer_function(unsigned long data)

{
mod_timer(&my_timer,
jiffies+HZ/100);

}

static int sixth_drv_init(void)

{

init_timer(&my_timer);

my_timer.function = my_timer_function;

//my_timer.expires = 0;

add_timer(&my_timer);
return 0;

}

static void sixth_drv_exit(void)

{

del_timer(&my_timer);

}

module_init(sixth_drv_init);

module_exit(sixth_drv_exit);

MODULE_LICENSE("GPL");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: