#include <linux/module.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/ioctl.h>
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/timer.h>
MODULE_LICENSE("GPL");
struct timer_list mytimer;
void mytimer_ok(unsigned long expires)
{
int i;
mod_timer(&mytimer,jiffies+30);
for(i=0;i<10;i++)
printk("Wahahaha...My timer is OK \n");
}
static int __init hello_init(void)
{
printk("Hello modules init!\n");
init_timer(&mytimer); //首先要初始化一个定时器
mytimer.expires =jiffies+500; //500=5s //定时器的到期时间,间隔大约5s ,如果不用上jiffies,例如100,那么就只会运行一次,说明到100就到期了,那么就mytimer_ok就不会在工作了,但是该定时器还是开着的.
mytimer.function = mytimer_ok; //定时器到了要开始的动作函数
add_timer(&mytimer); //加入定时器
return 0;
}
static void __exit hello_exit (void)
{
del_timer(&mytimer);
printk("Hello module exit!\n");
}
module_init(hello_init);
module_exit(hello_exit);