字符设备驱动里各种结构体得关系??
如题:字符设备驱动里各种结构体struct file与struct file_operations、 struct inode、struct cdev ,都怎么相互发生关系的? 实在是晕。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如题:字符设备驱动里各种结构体struct file与struct file_operations、 struct inode、struct cdev ,都怎么相互发生关系的? 实在是晕。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
本帖最后由 tempname3 于 2011-04-28 07:57 编辑
大概是这样。系统把设备号与cdev结构体关联。当打开一个设备文件时,首是文件名到inode的转换,得到inode后发现它是个字符设备,于是得到它设备号。如果设备号之前与cdev关联了,那么就取出这个cdev,生成file结构体,将其中的file_operation设置为cdev内携带的file_operation,大概还会调用其open方法。用户层对fd的读写最后就被引导到对应file中file_operation里的方法,而这些方法就是驱动里的方法。这样,驱动代码就得到执行的机会了。
回复 2# tempname3
谢谢LS的,清楚了一点点。哪位有清晰的描述,不妨继续写来。