一、使用tasklet步骤
1、定义tasklet数据结构
strcut tasklet_struct my_tasklet;
unsigned long data = 0;
2、编写自己的tasklet处理函数,函数原形如下:
void tasklet_handler(unsigned long data);
3、初始化tasklet数据结构
tasklet_init(&my_tasklet, tasklet_handler, data);
4、调度自己的tasklet
tasklet_schedule(&my_tasklet);
二、示例
#include <linux/module.h>
#include <linux/init.h>
#include <kernel.h>
#include <interrupt.h>
static struct tasklet_struct my_tasklet;
static void tasklet_handler(unsigned long data)
{
pirntk(KERN_ALERT"tasklet_handler is running");
}
static int __init test_init(void)
{
tasklet_init(&my_tasklet, tasklet_handler, 0);
tasklet_schedule(&my_tasklet);
return 0;
}
static void __exit test_exit(void)
{
tasklet_kill(&my_tasklet);
}
MODULE_LICENSE("GPL");
module_init(test_init);
moudle_exit(test_exit);