一.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是對象的文本名稱??衫胹ysfs導出到用戶空間。Sysfs是一個虛擬文件系統(tǒng),可以將系統(tǒng)的各種屬性導出到用戶空間。Sd用于支持內核對象與sysfs之間的關聯(lián)。
2.kref類型為struct kref,用于簡化引用計數的管理。
3.entry是一個標準的鏈表元素,用于將若干kobject放在一個鏈表中
4.kset:將對象與其他對象放置在一個集合,
5.parent:是一個指向父對象的指針,可用于在kobject之間建立層次結構。
6.ktype提供了包含kobject數據結構的更多詳細信息。





