您的位置:首页 > 理论基础 > 数据结构算法

Linux设备模型基础---数据结构

2012-01-03 09:50 429 查看



属性相关的成员变量

@name: 名称

@kref: 引用计数,用于统计系统中引用该对象的次数。

?
看似多此一举,实际上是为了防止用户直接操作refcount。用struct kref进行封装后,用户须通过固定的接口来操作。如

?
@ktype:

?
@release:
当kobject的引用计数减为0时,该指针指向的函数将被调用,进行kobject的释放处理。

@default_attrs:该kobject所具有的属性值,这些属性值通过sysfs文件系统到处到用户空间,用户也可

对这些值进行赋值。

?
@name: 属性名

@mode: 属性模式

其余两个属性仅在内核启动了对锁调试的支持时才有用。

@sysfs_ops:
该结构包括两个函数指针,其中show指向的函数用于向用户导出属性值,而store在用

户对属性进行赋值时被调用。

?
其余变量用于命名空间的支持,此处忽略。

组织结构相关的成员变量

@kset: 本kobject所属的kset。

kset是用于组织属于某种特定类型的kobject对象集合,这里的类型指的是对于某些时间具有某种相同

操作的意思。

?
@list: 用于组织本kset内的kobject对象。

@list_lock: 自旋锁,在遍历本set中的kobject对象时实现互斥操作。

@kobj: kset作为一个内核对象,其本身也作为kobject的一个实例。

@uevent_ops: uevent事件的响应函数。

?
@filter: 过滤掉不感兴趣的uevent事件

@name: 获取subsystem环境变量

@uevent: uevent事件发送函数。

@entry: 属于同一个kset的kobject对象会组织成双向链表形式,entry为相应的链接元素。

?
@parent: kobject除了根据其所属的kset进行组织以外,同时会按照父子关系组织成树形

结构,而parent则指向其父节点。

Sysfs文件系统相关的成员变量

@sysfs_dirent:在Sysfs文件系统中对应的节点,该节点可能为一个目录、链接等。

?
@s_count: 引用计数

@s_active: 对成员变量解除引用时,要获得此变量的引用。

@s_parent; 父节点

@s_sibling: 兄弟节点

@s_name;

@s_ns;

@union *: 根据s_flags有不同实现。

@s_flags: 类型,只使用了低16位,在低16位中,低8位是节点类型,高8位是命名空间类型

@s_mode:

@s_ino: inode节点号

@s_iattr: 主要用于VFS层监视inode节点状态改变。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: