Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3433130
  • 博文数量: 754
  • 博客积分: 10132
  • 博客等级: 上将
  • 技术积分: 7780
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-14 23:36
文章分类

全部博文(754)

文章存档

2012年(3)

2011年(39)

2010年(66)

2009年(167)

2008年(479)

我的朋友

分类: LINUX

2009-04-10 10:05:52

Kobject结构定义为:
struct kobject {
char * k_name;    指向设备名称的指针
char name[KOBJ_NAME_LEN];   设备名称
struct kref kref;    对象引用计数
struct list_head entry;   挂接到所在kset中去的单元
struct kobject * parent; 指向父对象的指针
struct kset * kset;    所属kset的指针
struct kobj_type * ktype;   指向其对象类型描述符的指针
struct dentry * dentry; sysfs文件系统中与该对象对应的文件节点路径指针
};
Kobject通常通过kset组织成层次化的结构,kset是具有相同类型的kobject的集合,在内核中用kset数据结构表示,定义为:
struct kset {
struct subsystem * subsys;   所在的subsystem的指针
struct kobj_type * ktype;   指向该kset对象类型描述符的指针
struct list_head list;      用于连接该kset中所有kobject的链表头
struct kobject kobj;     嵌入的kobject
struct kset_hotplug_ops * hotplug_ops; 指向热插拔操作表的指针
};
Kset数据结构还内嵌了一个kobject对象(由kobj域表示),所有属于这个kset 的kobject对象的parent域均指向这个内嵌的对象
Subsystem是一系列kset的集合,描述系统中某一 类设备子系统,如block_subsys表示所有的块设备,对应于sysfs文件系统中的block目录。类似的,devices_subsys对应于 sysfs中的devices目录,描述系统中所有的设备。Subsystem由struct subsystem数据结构描述,定义为:
struct subsystem {
struct kset kset;       内嵌的kset对象
struct rw_semaphore rwsem; 互斥访问信号量
};
阅读(2211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~