#include #include // #include #include #define DELAY 1000 #define ITERATIONS 5 struct timer_list tl; void timer_func(unsigned long data) { if (tl.data--) mod_timer(&tl, jiffies + DELAY); printk(KERN_INFO "Hello world, again with %lu\n", data); } int init_module(void) { printk(KERN_INFO "Hello, world\n"); init_timer(&tl); tl.expires = jiffies + DELAY; tl.function = timer_func; tl.data = ITERATIONS; add_timer(&tl); return 0; } void cleanup_module(void) { del_timer_sync(&tl); printk(KERN_INFO "Goodbye cruel world\n"); }