Chinaunix首页 | 论坛 | 博客
  • 博客访问: 444810
  • 博文数量: 50
  • 博客积分: 2635
  • 博客等级: 少校
  • 技术积分: 760
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-16 14:02
文章分类

全部博文(50)

文章存档

2013年(3)

2012年(18)

2011年(7)

2009年(1)

2008年(21)

我的朋友

分类: LINUX

2012-03-01 11:50:10

#include
#include
#include

MODULE_LICENSE ( “BSD” );  

static void tasklet_handler(unsigned long data);
static void tasklet_do(unsigned long data);
DECLARE_TASKLET(test_tasklet, tasklet_do, 0);
static struct timer_list tasklet_timer;

static void tasklet_handler(unsigned long data)
{
    tasklet_schedule(&test_tasklet);
    mod_timer(&tasklet_timer, jiffies + HZ);
}  

static void tasklet_do(unsigned long data)
{
    printk(KERN_ALERT “tasklet is running.\n”);
}

static int __init test_init(void)
{
    printk(KERN_ALERT “tasklet init running.\n”);
    init_timer(&tasklet_timer);
    tasklet_timer.function = &tasklet_handler;
    tasklet_timer.data = 0;
    tasklet_timer.expires = jiffies + HZ;
    add_timer(&tasklet_timer);
    return 0 ;
}  

static void __exit test_exit(void)
{
    printk(KERN_ALERT “tasklet exit running.\n” );
    del_timer_sync(&tasklet_timer);
}

module_init(test_init);
module_exit(test_exit);

阅读(1323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~