日期:2014-05-16  浏览次数:20731 次

linux设备模型之内核集合、内核对象

引言:最近上班特无聊,发发牢骚,特地对内核对象、内核集合进行了了解,写此文章,方便日后一目了然

设备模型构成:①内核对象②内核集合

 

一:内核对象

定义:内核对象是设备模型中最基本的数据类型,内核对象与sysfs(伪文件系统,通常挂载/sys目录下)文件系统中的目录一一对应,其父子关系对应着目录的层次关系,属性对应着目录中的文件(文件名、以及文件属性)

内核对象的数据类型

structkobject{

    constchar*name;   //内核对象的名称

    structlist_headentry;//把属于同一个集合的多个内核对象组成链表

    structkobject*parent;//维护内核对象的父子关系

    structkset*kset;  //指向所属内核集合

    structkobj_type*ktype;   //指向一个用于描述内核对象内型的结构体(包括:文件名,文件属性,以及文件的读写)

    structkrefkref;   //引用计数

    unsignedintuevent_suppress:1;//内核用户态事件是否被抑制

    //...

};

内核对象的类型

structkobj_type{

    void(*release)(struct