工作队列 (一) workqueue demo

驱动makefile 请参考驱动makefile


// 使用方法
// insmod work_queue.ko

// work_queue.c
#include
#include

// 头文件
#include 

// 全局
static struct work_struct test_work;

//handler
static void test_work_func(struct work_struct *work){
    printk("hello\n");

    return ;
}


static void work_init(void){

    // 初始化
    INIT_WORK(&test_work, test_work_func);

    // 提交任务到 event
    schedule_work(&test_work);
}


static void work_deinit(void){

}



static int hello_init(void)
{
	printk(KERN_ALERT"-----------------!\n");
	printk(KERN_ALERT"hello world!\n");
    work_init();
	printk(KERN_ALERT"hello vexpress!\n");
	printk(KERN_ALERT"-----------------!\n");

	return 0;
}

static void  __exit hello_exit(void)
{
    work_deinit();
	printk(KERN_ALERT"goodbye, crazy world!\n");
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");

你可能感兴趣的:(驱动)