现在的位置: 首页 > 综合 > 正文

qemu 定时器

2017年12月20日 ⁄ 综合 ⁄ 共 653字 ⁄ 字号 评论关闭

qemu定时器模仿内核定时器:

内核定时器函数:

1)定义定时器: struct   timer_list   my_timer;

2)初始化定时器:init_timer(&my_timer);  
my_timer.expires = jiffies + delay;          /* 定时器超时时的节拍数 */
my_timer.data = 0;                                /* 给定时器处理函数传入0值 */
my_timer.function = my_function;          /* 定时器超时时调用的函数 */
my_timer.expires表示超时时间,它是以节拍为单位的绝对计数值。如果当前jiffies计数等于或大于它,处理函数开始执行。处理函数必须符合下面的函数原形:

3) 激活定时器:add_timer(&my_timer);

4)更改已经激活的定时器超时时间:mod_timer(&my_timer, jiffies+new_delay);
mod_timer()函数也可以操作那些已经初始化,但还没有被激活的定时器,它会同时激活它。一旦从mod_timer()函数返回,定时器都将被激活而且设置了新的定时值。

5)del_timer(&my_timer);   或      del_timer_sync()删除定时器

qemu定时器:

1) 创建定时器:qemu_new_timer()
2) 删除定时器:qemu_del_timer()

3)  更改定时器超时时间: qemu_mod_timer()

抱歉!评论已关闭.