欢迎来到EDA中国!
当前位置:网站首页 >技术专栏 > ARM

linux内核一般对象管理

发布时间: 2012-08-01 10:05:09     来源: EDA中国

linux,内核,一般,对象,,管理

一.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数据结构的更多详细信息。

关键字 : 管理 对象 一般 内核 linux 
获取帮助