获取Linux内核模块中现有设备类(struct class)的指针
获取
Linux内核模块中现有设备类(struct class)的指针
大家好! 我正在尝试在现有设备类中注册设备,但是我无法获取指向现有类的指针.内核版本是Linux 3.3.6. *cl = class_create(THIS_MODULE,className); dev_ret = device_create(*cl,NULL,*dev,driverName); 但是,我需要在同一个类中注册另一个设备与另一个模块,但我找不到一种方法来获取指向现有类的指针.而且我不能在另一个模块中再次创建类,因为类已经存在,class_create返回NULL而不是指向device_create所需类的指针. http://lwn.net/Articles/102500/ 一个函数,通过名称返回指向类的指针: struct class * class_find(char * name) 但是当我尝试编译函数时,编译器说它不存在. 我试图重写这个函数,因为它的代码是上面链接中的列表.但是当我尝试用class_subsys迭代时: list_for_each_entry(this_class,&class_subsys.kset.list,subsys.kset.kobj.entry) 现在找不到符号class_subsys.我再次认为它被导出到内核. 我不确定缺少什么.一些头? 我想如果我可以从头开始遍历sysfs,我可以得到一个指向现有类的指针. 有人能指出我正确的方向吗? 解决方法
我认为输入核心是这样完成的,这里是片段
看看:https://github.com/torvalds/linux/blob/master/drivers/input/input.c#L1720 最好的祝福! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |