Linux内核 add_timer()

函数: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( )分析文档的实例解析部分。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!