by luozhiyong131 - 移动操作系统 - 2011-02-25 10:39:02 阅读(489) 回复(0)
Sysfs文件系统
Linux2.6
在device_add函数中: int device_add(struct device *dev) { ... if (MAJOR(dev->devt)) { error = device_create_file(dev, &devt_attr); if (error) goto ueventattrError; error = device_create_sys_dev_entry(dev); if (error) goto devtattrError; } ... } static int device_create_sys_dev_entry(struct device *dev) { struct kobject *kobj = device_to_dev_kobj(dev); int ...
我看的内核版本为2.6.11 68 void kobj_unmap(struct kobj_map *domain, dev_t dev, unsigned long range) 69 { 70 unsigned n = MAJOR(dev + range - 1) - MAJOR(dev) + 1; 71 unsigned index = MAJOR(dev); 72 unsigned i; ************************************************************************************** 73 struct probe *found = NULL; *****************************************************************...
kobject,kset,子系统层次结构 内核通常用kobject 结构将各个对象连接起来组成一个分层的结构体系。 parent 是指向另外一个kobject 结构(分层结构中上一层的节点)的指针,主要用途是在 sysfs 层次中定位对象. 一个 kset 是嵌入到相同类型结构的 kobject 的集合。但 struct kobj_type 关注的是对象的类型,而struct kset 关心的是对象的集合,可认为kset是kobjects 的顶层容器类。每个 kset 在内部包含自己的 kobject, 并可以用...
kobject,kset,子系统层次结构 内核通常用kobject 结构将各个对象连接起来组成一个分层的结构体系。 parent 是指向另外一个kobject 结构(分层结构中上一层的节点)的指针,主要用途是在 sysfs 层次中定位对象. 一个 kset 是嵌入到相同类型结构的 kobject 的集合。但 struct kobj_type 关注的是对象的类型,而struct kset 关心的是对象的集合,可认为kset是kobjects 的顶层容器类。每个 kset 在内部包含自己的 kobject, 并...
Eric Fang 2010-01-11 -------------------------------------------------------------- 本站分析linux内核源码,版本号为2.6.32.3 转载请注明出处: http://ericfang.cublog.cn/ -------------------------------------------------------------- 接着上一篇文章,分析kset, 我们已经知道了kset内嵌了kobject来表示自身的节点,创建kset就要完成其内嵌kobject,注册kset时会产生一个事件,事件而最终会调用uevent_ops字段...
在读kset_create_and_add的时候(2.6.27),产生了一点疑问, 通过kset_create_and_add->kset_register->kobject_add_internal->kobj_kset_join, 把当前kset加入上层kset的链表中,但不明白的是,调用之前的判断if (kobj->kset) 为什么 能成立,也就是kobj->kset是什么时候被赋值的?
#include