#include <linux/module.h> #include <linux/init.h> MODULE_LICENSE("Dual BSD/GPL"); #define TIMEOUT_VALUE (5 * HZ) static struct timer_list tickfn; static void sample_timeout(unsigned long arg) { struct timer_list *tick = (struct timer_list *) arg; printk(KERN_ALERT "ptr %p\n", tick); mod_timer(tick, jiffies + TIMEOUT_VALUE); } static int __init sample_init(void) { printk(KERN_ALERT "driver loaded\n"); init_timer(&tickfn); tickfn.function = sample_timeout; tickfn.data = (unsigned long) &tickfn; tickfn.expires = jiffies + TIMEOUT_VALUE; add_timer(&tickfn); return 0; } static void __exit sample_exit(void) { int ret; ret = del_timer_sync(&tickfn); printk(KERN_ALERT "driver unloaded (%d)\n", ret); } module_init(sample_init); module_exit(sample_exit);
2016年10月26日 星期三
Kernel timer 用法
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言