函数:add_timer( )
文件包含:
#include<linux/timer.h>
函数定义:
在内核源码中的位置:linux-3.19.3/kernel/time/timer.c
函数定义格式:
void add_timer(struct timer_list *timer)
函数功能描述:
函数add_timer( )根据参数struct timer_list变量的expires值将定时器插入到合适的动态定时器的链表中,并激活定时器。函数首先检测定时器是否处于挂起状态,如果挂起给出警告信息并退出,否则插入合适的定时器链表。
输入参数说明:
此函数的输入参数是struct timer_list类型的变量,定义参见文件linux-3.19.3/include/linux/timer.h,用于存放动态定时器,其定义如下:
struct timer_list {
struct list_head entry;
unsigned long expires;
struct tvec_base *base;
void (*function)(unsigned long);
unsigned long data;
int slack;
#ifdef CONFIG_TIMER_STATS
int start_pid;
void *start_site;
char start_comm[16];
#endif
#ifdef CONFIG_LOCKDEP
struct lockdep_map lockdep_map;
#endif
};
其中:
- 字段
entry
:用来将多个定时器连接成一条双向循环链表。 -
字段
expires
:给出定时器到期时间,时间用节拍表示,其值为系统启动以来所经过的节拍数,当其值小于或等于jiff ies的值时,就说明定时器到期或终止。 -
字段
base
:用来指定此定时器在哪个CPU上执行。 -
字段
function
:定时器到期时执行函数的地址。 -
字段
data
:指定传递给定时器函数的参数。
返回参数说明:
- 函数add_timer( )返回值是void类型的变量,即不返回任何结果。
实例解析:
此函数必须和函数del_timer( )配对使用,不能单独使用,所以测试程序及结果分析参考函数del_timer( )分析文档的实例解析部分。
酷客网相关文章:
评论前必须登录!
注册