问题描述
- 关于linux 内核函数 kset_get的疑问,望大神解答
- kset_get函数定义如下:
static inline struct kset *kset_get(struct kset *k)
{
return k ? to_kset(kobject_get(&k->kobj)) : NULL;
}
static inline struct kset *to_kset(struct kobject *kobj)
{
return kobj ? container_of(kobj struct kset kobj) : NULL;
}
该函数是获取k结构体指针指向的结构体首地址。
有一点我不明白的是这个函数先获取k—>kobj的地址,然后传给 container_of宏定义,通过这个宏定义再获取k指向的结构体的首地址。这不是绕了一圈又绕回来了,内核这么做意义何在?以上理解可能存在错误,望大神指教。
时间: 2024-08-03 02:20:36