学Linux驱动: 应该先了解驱动模型 (3)

使用它使用以下命令从驱动程序目录中添加和删除属性

int driver_create_file(struct device_driver *, const struct driver_attribute *); void driver_remove_file(struct device_driver *, const struct driver_attribute *); class

作用:抽象设备的高层视图,描述的是设备的集合。抽象了同类型的设备的底层实现细节。比如所有的网络接口都位于/sys/class/net下

struct subsys_private *p描述类链表

kobject/kset

kobject类似于面向对象中的内核基类,内核利用它将各个对象连接起来组成分层的机构体系,其parent指针将形成一个树状分层结构。

kset内部包含了kobject。重心在描述对象的聚集于集合。这也是set一词的含义。每一个kset添加到系统中,都将在sysfs中创建一个目录

kobject/kset一起实现了sysfs虚拟文件系统中设备/总线/设备驱动树状分层结构的最关键的底层实现由来。

总体上而言:

通过上面一些关键数据结构关系分析,总线设备驱动模型最终目的是实现如下这样一个分层驱动模型。

学Linux驱动: 应该先了解驱动模型

文章出自微信公众号:嵌入式客栈,更多内容,请关注本人公众号,严禁商业使用,违法必究

学Linux驱动: 应该先了解驱动模型

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfxpw.html