- 博客(7)
- 收藏
- 关注
原创 linux tasklet 数据结构解析
一、struct tasklet_struct 每个tasklet_struct 结构代表tasklet链表中的一个独立的小任务。其定义如下: struct tasklet_struct { struct tasklet_struct *next; /* 指向链表中的下一个tasklet
2013-03-27 10:47:50 633
原创 linux tasklet
一、使用tasklet步骤1、定义tasklet数据结构 strcut tasklet_struct my_tasklet; unsigned long data = 0;2、编写自己的tasklet处理函数,函数原形如下: void tasklet_handler(unsigned long data);3、初始化tasklet数
2013-03-27 10:26:07 505
原创 linux 工作队列之queue_delayed_work
1、定义数据结构 struct delayed_work work; struct workqueue_struct *wq;2、编写要被提交到工作队列中的函数,函数原形如下: typedef void(*work_func_t)(struct work_struct *work);3、创建一个专用的内核线程来执行提交到工作队列中的
2013-03-26 10:08:22 2922
原创 linux 工作队列之queue_work
1、定时数据结构 struct work_struct work; struct workqueue_struct *wq;2、编写要在工作队列中被调用的函数,函数原形如下: typedef void (*work_func_t)(struct work_struct *work);3、创建一个专用的内核线程来执行提交到工作队列中的函数
2013-03-26 09:47:45 9371
原创 linux 工作队列之schedule_delayed_work
一、 schedule_delay_work 示例: struct wdt_t { spinlock_t lock; void __iomem *base; struct pl
2013-03-25 16:34:21 5715
原创 linux 工作队列之schedule_work
在许多情况下,设备驱动程序不需要有自己的工作队列。如果我们只是偶尔需要向队列中提交任务,则一种更简单、更有效的办法是使用内核提供的共享的默认工作队列。但是,如果我们使用了这个默认的工作队列,则应该记住我们正在和他人共享该工作队列。这意味着,我们不应该长期独占该队列,即:不能长时间休眠,而且我们的任务可能需要更长的时间才能获得处理器。 一、schedule使用步骤
2013-03-25 11:08:59 3721
原创 linux 工作队列之API
自2.6.20起,工作队列的数据结构发生了一些变化,使用时不能沿用旧的方法。1、在工作队列中被调用的函数原形如下: typedef void (*work_func_t)(struct work_struct *work);2、定义了一个新的结构delayed_work用于处理延迟执行:struct delayed_work { struct w
2013-03-25 09:24:33 583
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人