对INIT_WORK的理解
来源:互联网 发布:three.js pointlight 编辑:程序博客网 时间:2024/05/14 12:33
以前内核里对这个函数是这样定义的 #define INIT_WORK(_work, _func, _data),可以理解为INIT_WORK会在你定义的_work工作队列里面增加一个工作任务,该任务就是_func。_func这个任务会需要一些数据作为参数,这个参数就是通过_data传递的。
而现在看驱动的时候你会发现调用INIT_WORK的时候是只有两个参数,去掉了数据的部分。也许你会问怎么传递data呢,等下会讲述到。其实现在我对这个理解还是比较模糊,希望各位说说你们的理解,顺便也让我理解更透彻一点。看许多驱动模块的时候会发觉work就是一个工作队列,一般是结构体work_struct,主要的目的就是用来处理中断的。比如在中断里面要做很多事,但是比较耗时,这时就可以把耗时的工作放到工作队列。说白了就是系统延时调度的一个自定义函数。
现在已goodix的触摸屏列举一下步骤:
1. 在探测函数里goodix_ts_probe初始化
INIT_WORK(&ts->work, goodix_ts_work_func);//struct work_struct work,ts是client私有数据结构体
主要目的就是因为就算没有中断,在第一次开机时也有检测设备,所以这个任务一开始就执行,只不过到后来中断发生后就再执行.
2. 现在当然轮到static void goodix_ts_work_func(struct work_struct *work)这个工作任务了
在这个函数里会有一句:
struct goodix_ts_data *ts = container_of(work, struct goodix_ts_data, work);
这函数的主要目的就是解决前面所说的我们的data跑哪去了,使用container_of这个函数来求出我们的data的指针
3.当然你不能忘记注册你的中断函数了
request_irq(client->irq, goodix_ts_irq_handler,pdata->irq_edge ? IRQ_TYPE_EDGE_FALLING : IRQ_TYPE_EDGE_RISING,client->name, ts);
所以用一个结构体ts就可以把中断,任务,设备名等全部囊括进来
我理解就差不多是这样的。希望大叔级任务指出不正之处。
可以参考下工作队列的那篇文章
0
上一篇:Linux 输入子系统
下一篇:工作队列work queue
相关热门文章
- apns security
- apns security
- Rabin-Karp字符串查找算法...
- C# 屏蔽控件单击事件更优的方...
- 地址空间分布
- linux守护进程的几个关键地方...
- stagefright与opencore对比
- 嵌入式Linux之我行——u-boot-...
- 嵌入式Linux之我行——内核、...
- CodeNavigator -- 程序员必备...
- ChinaUnix & ITPUB社区12周年...
- ssh连接出现以下提示,求解...
- 如何扩展MYSQL
- 准备做一个大型门户,用户什么...
- gbk or utf8
给主人留下些什么吧!~~
评论热议
- 对INIT_WORK的理解
- 对INIT_WORK的理解
- 对INIT_WORK的理解
- 对INIT_WORK的理解
- 对INIT_WORK的理解
- 对INIT_WORK的理解
- INIT_WORK的暂时理解
- INIT_WORK(工作队列的理解)
- INIT_WORK等有关工作队列的理解
- INIT_WORK
- INIT_WORK的宏定义的解释
- 工作队列的初始化(INIT_WORK的参数问题)
- 工作队列的初始化(INIT_WORK的参数问题)
- 工作队列的初始化(INIT_WORK的参…
- 工作队列的初始化(INIT_WORK的参…
- 关于work queue 中出现的INIT_WORK 参数问题
- 对博客的理解
- 对动力的理解
- Eclipse快捷方式
- android u-boot分析
- LInux 内核配置系统
- Linux 输入子系统
- 迷你版本的Nginx定时机制的实现
- 对INIT_WORK的理解
- 工作队列work queue
- ALSA之PCM分析
- ALSA之codec分析
- 通过request.getHeader("referer")防止用户手动修改URL访问非权限页面
- 安装Ubuntu10.10的vm tools
- U-Boot简单流程
- Android 当修改一些代码时,使用什么编译命令可以最有效率
- 基于platform机制的驱动模型
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
天然气工业炉
工业淬火炉
工业炉
工业炉生产厂家
吉埃斐工业炉
大威工业炉
工业炉展览会
节能工业炉
燃气工业炉
蓄热式工业炉
工业炉阀门
顺达工业炉
工业炉节能技术
生物质燃料锅炉
锅炉燃料
广东工业大学硕士点
沈阳工业大学硕士点
内蒙古工业大学硕士点
湖南工业大学硕士点
太原工业学院硕士点
上海第二工业大学报考点
工业电取暖器
工业电蒸汽锅炉厂家
工业电吹风机
工业电加热暖风机
工业用电和民用电价格
工业电价格
工业用盐
工业盐的用途
工业盐用途
卖工业盐需要什么手续
工业盐价格表
软水工业盐
工业盐的价格
精制工业盐
工业盐检测
工业盐食用危害
工业盐是否放开
工业级盐
g工业盐
氯化钠工业盐