linux 內核定時器解析

1.linux內核定時器基本結構和函數

1)struct timer_list 一個struct timer_list對應了一個定時器。
#include <linux/timer.h>
以下列出常用的接口:
struct timer_list
  {
   /*....*/
   unsigned long expires;//定時器服務函數開始執行時間
   void (*function)(unsigned long);//定義一個指向定時器服務函數的指針function,服務函數有一個 unsigned long的參數,並且返回void
   unsigned long data;//定時時間到時,data參數會傳入服務函數
  }
 
void init_timer(struct timer_list* timer)//初始化一個定時器

-----------使用定時器的步驟--------------
struct timer_list  my_timer_list;//定義一個定時器,可以把它放在你的設備結構中
init_timer(&my_timer_list);//初始化一個定時器
my_timer_list.expire=jiffies+HZ;//定時器1s後運行服務程序
my_timer_list.function=timer_function;//定時器服務函數
add_timer(&my_timer_list);//添加定時器
void timer_function(unsigned long)//寫定時器服務函數
del_timer(&my_timer_list);//當定時器不再需要時刪除定時器
del_timer_sync(&my_timer_list);//基本和del_timer一樣,比較適合在多核處理器使用,一般推薦使用del_timer_sync。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章