|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一.kobject管理struct kobject { const char *name; struct list_head entry; struct kobject *parent; struct kset *kset; struct kobj_type *ktype; struct sysfs_dirent *sd; struct kref kref; unsigned int state_initialized:1; unsigned int state_in_sysfs:1; unsigned int state_add_uevent_sent:1; unsigned int state_remove_uevent_sent:1; unsigned int uevent_suppress:1;};Kobject不是通过指针与其他数据结构连接起来的,而必须直接嵌入。这样做通过管理kobject就可以达到包含kobject对象的管理。例如:Struct sample{ Struct kobject kobj;}1.Name是对象的文本名称。可利用sysfs导出到用户空间。Sysfs是一个虚拟文件系统,可以将系统的各种属性导出到用户空间。Sd用于支持内核对象与sysfs之间的关联。2.kref类型为struct kref,用于简化引用计数的管理。3.entry是一个标准的链表元素,用于将若干kobject放在一个链表中4.kset:将对象与其他对象放置在一个集合,5.parent:是一个指向父对象的指针,可用于在kobject之间建立层次结构。6.ktype提供了包含kobject数据结构的更多详细信息。 |
|