您可以給出Linux中內核定時器(start_ktimer
)實現的任何基本示例嗎?內核定時器的例子在Linux中的實現(在內核2.6.32中)
1
A
回答
1
最好的我可以告訴,萊納斯從未將ktimer patch納入發展的主線。請注意,該補丁包含使用start_ktimer的示例(請參閱fs/exec.c)。 如果您特別想使用ktimers,則需要將內核版本2.6.13的補丁向前移植到2.6.32內核。另一方面,如果您只需要一個定時器機制,標準內核定時器API就可以工作。有關如何使用此API以及示例的詳細討論,請參閱Linux設備驅動程序手冊的Chapter 7,具體而言,標題爲「定時器API」(第198頁)的部分。在這種情況下,相當於start_ktimer()
的是add_timer()
。
1
Here就是一個例子... :)簡單,易於...可用的源代碼:
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kmod.h>
#include <linux/slab.h>
#include <linux/timer.h>
#include <linux/jiffies.h>
#include <asm/param.h>
struct timer_list exp_timer;
static void do_something(unsigned long data)
{
printk(KERN_INFO "Your timer expired and app has been called\n");
}
static int __init tst_init(void)
{
int delay = 300;
printk(KERN_INFO "Init called\n");
init_timer_on_stack(&exp_timer);
exp_timer.expires = jiffies + delay * HZ;
exp_timer.data = 0;
exp_timer.function = do_something;
add_timer(&exp_timer);
return 0;
}
static void __exit tst_exit(void)
{
del_timer(&exp_timer);
printk(KERN_INFO "Exit called\n");
}
module_init(tst_init);
module_exit(tst_exit);
MODULE_LICENSE("GPL");
相關問題
- 1. 在Linux內核中實現硬件時鐘信號內核
- 2. 如何在linux內核中實現精確的定時器
- 3. 在Linux內核中的memcpy實現
- 4. Linux內核實現
- 5. 在(CentOS 6.5)中編譯2.4.20內核2.6.32內核
- 6. 在Linux內核中
- 7. 其中是在Linux內核syscalls.h內的功能的實現
- 8. 啓動時內核模塊在Linux內核中的狀態
- 9. 哪個函數可以代替Linux內核2.6.32中的「create_proc_info_entry」?
- 10. 實現Linux內核作爲路由器
- 11. 在Linux內核中讀取和寫入原子操作實現
- 12. 在Linux內核中搶佔
- 13. Linux內核 - 從用戶空間停止正在運行的內核定時器
- 14. 如何在Linux內核中查找掛起的定時器
- 15. Linux內核例程的時序測量
- 16. 什麼Linux操作系統來與Linux內核2.6.32
- 17. 在Linux內核中實現正確的模塊間同步
- 18. 如何在linux內核中實現新的調度方案
- 19. Linux內核 - 中斷
- 20. setscheduler()在Linux內核
- 21. asm__volatile()在Linux內核
- 22. 在cleanup_module linux內核
- 23. linux內核TCP重傳定時器
- 24. 降低linux內核定時器頻率
- 25. 更改Linux內核定時器
- 26. linux內核的中斷
- 27. 剝離Linux中的內核?
- 28. 目的在Linux內核中wake_up_sync/wake_up_interruptible_sync的
- 29. Linux內核和我的內核模塊
- 30. 在xv6中實現內核級線程
你想知道如何使用內核定時器還是怎麼着內核定時器實現 – BobbyShaftoe 2010-10-28 03:57:18
我只是想在我自己的內核模塊中使用內核定時器。 – 2010-10-28 05:30:42