本帖最后由 向日葵向南 于 2013-11-14 15:26 编辑 kobject在sysfs文件系统中表现为目录,在系统加载的过程中,我在一个模块中通过kobject_create_and_add()成功添加一个目录:AAA,表现为/sys/AAA,然后在此目录下通过sysfs_create_group(AAA, BBB)建立attribute ,表现为文件BBB,我想在加载另一个的模块时,在已经存在的kobject:(/sys/AAA ),AAA这个目录中再添加另外一个attribute:CCC,表现为: /sys/AAA/BBB CCC[/code] 还是希望通过sysfs_create_group(AAA, CCC) 这样来建立attribute,然后建立这样的目录/sys/AAA/CCC。 但是sysfs_create_group(),需要两个参数kobject和 attribute,attribute这个可以声明,但kobject:AAA 其实已经存在, 使用kobject_create_and_add()这个函数,在后面掉到 sysfs_add_one会报 EEXIST错误,从而不能建立重名的BBB。 现在的问题是怎么取得这个已经通过其它模块建立的kobject:AAA。 我开始想的办法使用这个函数:sysfs_get_dirent(),这个函数的参数其中一个是struct sysfs_dirent *sd;同样是需要已知的,本来是想用sysfs_root 这个参数是在 kernel/fs/sysfs/mount.c中声明的,并没有EXPORT,用不了,include 头文件中无法引用。谁能帮想想办法: 我原先的想法是通过sysfs path (/sys/AAA)或 name(BBB)来获得sysfs_dirent 或者是直接获得已经存在的kobject。sysfs_dirent这个也是可以得到kobject的。 谁能有更好的方法,谢谢。 |
已解决。关闭此贴 |