Linux内核API add_timer

add_timer函数功能描述:函数add_timer( )根据参数struct timer_list变量的expires值将定时器插入到合适的动态定时器的链表中,并激活定时器。函数首先检测定时器是否处于挂起状态,如果挂起给出警告信息并退出,否则插入合适的定时器链表。

add_timer文件包含

#include<linux/timer.h>

add_timer函数定义

在内核源码中的位置:linux-3.19.3/kernel/time/timer.c

函数定义格式:

void add_timer(struct timer_list *timer)

add_timer输入参数说明

此函数的输入参数是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返回参数说明

  • 函数add_timer( )返回值是void类型的变量,即不返回任何结果。

add_timer实例解析

此函数必须和函数del_timer( )配对使用,不能单独使用,所以测试程序及结果分析参考函数del_timer( )分析文档的实例解析部分。

赞(0)
未经允许不得转载:极客笔记 » Linux内核API add_timer
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址