免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3322 | 回复: 6

请教:linux内核代码file_operation结构体问题! [复制链接]

论坛徽章:
0
发表于 2011-12-23 09:11 |显示全部楼层
本帖最后由 che180 于 2011-12-23 11:37 编辑

file_operation ops=
{
.....
.prob=xxx,       //结构体变量初始化的时候有这样的用法?谭浩强的书都翻烂了也没找到。
......
}
file_operation
{
....
(*prob)(platform *),//参数(paltform *)这是什么用法?不是用platform定义一个参数吗?为什么只有*没有变量? 现在谭浩强的书都翻成渣了也没找到。
...
}

论坛徽章:
0
发表于 2011-12-23 16:30 |显示全部楼层
关于第一个问题参考:http://bbs.chinaunix.net/thread-3566578-1-1.html

(*probe)(struct platform_device *pdev) 吧?定义一个函数指针,platform是linux驱动中的一种虚拟总线机制,对应的有platform_device和platform_driver。函数声明时可以只指定形参数据类型而不用指明形参变量名,所以上述声明为(*probe)(struct platform_device *)也是可以的

论坛徽章:
0
发表于 2011-12-23 17:12 |显示全部楼层
谢谢,第一个问题明白了!

论坛徽章:
0
发表于 2011-12-23 17:15 |显示全部楼层
谢谢,明白,两个问题都解决了!

论坛徽章:
0
发表于 2011-12-23 17:15 |显示全部楼层
file_operation
{
....
(*prob)(platform *),
...
}

兄弟, 看下函数指针,你就懂了。
见多就不怪了

论坛徽章:
0
发表于 2012-10-31 09:32 |显示全部楼层
:wink:我也明白了,谢谢各位!!!

论坛徽章:
0
发表于 2012-11-08 17:30 |显示全部楼层
谭大爷你好,谭大爷再见!

file_operation{
                  ....
}

你用到哪个操作,就给那个操作赋值,赋的值等于你的处理函数名.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP