10 定时器
1 定时器的时间单位
在内核中.config文件中CONFIG_HZ配置为每秒linux的时钟滴答次数,没发生一次全局变量jiffies便会增加1
在日常使用中使用HZ表示一秒
2 常用函数及其数据结构
-
struct timer_list *timer (timer_list结构体)
struct timer_list { /* * All fields that change during normal runtime grouped to the * same cacheline */ struct hlist_node entry; unsigned long expires; void (*function)(unsigned long); unsigned long data; u32 flags; #ifdef CONFIG_TIMER_STATS int start_pid; void *start_site; char start_comm[16]; #endif #ifdef CONFIG_LOCKDEP struct lockdep_map lockdep_map; #endif };
-
setup_timer(timer, fn, data)
初始化timer_list设置函数和参数
于init_timer类似
-
init_timer(timer)
初始timer_list
-
add_timer(struct timer_list *timer)
向内核添加定时器。timer->expires表示超时时间
-
mod_timer(struct timer_list *timer, unsigned long expires)
修改定时器超时时间,等价于del_timer(timer); timer->expires = expires; add_timer(timer)
-
del_timer(struct timer_list *timer)
删除定时器