#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/timer.h>
struct timer_list my_timer;
void func(unsigned long data)
{
printk("time out!\n data: %ld, pid: %ld\n", data, current->pid);
mod_timer(&my_timer, jiffies + 3*HZ); //修改定时器的时间为2秒
}
static int __init my_timer_init(void)
{
init_timer(&my_timer); //初始化定时器
my_timer.expires = jiffies + 5*HZ; //设置定时器的时间5秒
my_timer.function = func; //定时器时间到,需要执行的函数
my_timer.data = (unsigned long)99; //func函数的参数
add_timer(&my_timer); //注册定时器
printk("This is my timer pid: %ld\n", current->pid);
return 0;
}
static void __exit my_timer_exit(void)
{
del_timer(&my_timer); //注销定时器
printk("Good Bye\n");
}
MODULE_LICENSE("GPL");
MODULE_AUTHOR("MIKE CHEN");
module_init(my_timer_init);
module_exit(my_timer_exit);