Linux 内核 ksets 之上的操作

对于初始化和设置, ksets 有一个接口非常类似于 kobjects. 下列函数存在: void kset_init(struct kset *kset);

int kset_add(struct kset *kset);

int kset_register(struct kset *kset); void kset_unregister(struct kset *kset);

对大部分, 这些函数只是在 kset 的嵌入对象上调用类似的 kobject_ 函数. 为管理 ksets 的引用计数, 情况大概相同:

struct kset *kset_get(struct kset *kset); void kset_put(struct kset *kset);

一个 kset 还有一个名子, 存储于嵌入的 kobject. 因此, 如果你有一个 kset 称为 my_set, 你将设置它的名子用:

kobject_set_name(&my_set->kobj, "The name");

ksets 还有一个指针( 在 ktye 成员 )指向 kobject_type 结构来描述它包含的 kobject. 这个类型优先于在 kobject 自身中的 ktype 成员. 结果, 在典型的应用中, 在 struct kobject 中的 ktype 成员被留为 NULL, 因为 kset 中的相同成员是实际使用的那个.

最后, 一个 kset 包含一个子系统指针(称为 subsys).

原文地址:https://www.cnblogs.com/fanweisheng/p/11147550.html