int err; kobj = kset_find_obj(module_kset, name); //通过name域找下kobj是否存在,存在就返回,不存在创建新的 if (kobj) { mk = to_module_kobject(kobj); } else { mk = kzalloc(sizeof(struct module_kobject), GFP_KERNEL); BUG_ON(!mk); mk->mod = THIS_MODULE; mk->kobj.kset = mo...
struct kset{struct list_head list;spinlock_t list_lock;struct kobject kobj;conststruct kset_uevent_ops*uevent_ops;}; list: 用来将kset下的kobject使用链表管理。 list_lock: 对kset上的list访问操作时,使用spinlock进行互斥保护。 kobj: kset本身也是一个内核对象,所以需要嵌入kobject进行管理。 uevent_ops...