在/sys/中创建设备子设备目录
2016-05-17 14:03
309 查看
在drivers/base下的platform.c中:
struct device platform_bus = {
.init_name = "platform",
};
注意它是一个struct device结构类型,它是所有设备的根目录。
这是在s5p4418中display.c中的一段代码:
{
struct kobject *kobj;
int retval;
kobj = kobject_create();
if (!kobj)
return NULL;
retval = kobject_add(kobj, parent, "%s", name);
if (retval) {
printk(KERN_WARNING "%s: kobject_add error: %d\n",
__func__, retval);
kobject_put(kobj);
kobj = NULL;
}
return kobj;
}
EXPORT_SYMBOL_GPL(kobject_create_and_add);
它的第1个参数是要建的目录的名称,第2个参数是父目录的kobject对象(这意为着不光可以在/sys/devices/platform下创建,还可以在任意目录下创建)。
struct device platform_bus = {
.init_name = "platform",
};
注意它是一个struct device结构类型,它是所有设备的根目录。
这是在s5p4418中display.c中的一段代码:
struct kobject *kobj = NULL; /* create attribute interface */ kobj = kobject_create_and_add("display", &platform_bus.kobj); //在/sys/devices/platform中添加一个设备目录 if (! kobj) { printk(KERN_ERR "Fail, create kobject for display\n"); return -ret; } ret = sysfs_create_group(kobj, &attr_group); //为设备添加属性。再来看lib/kobject.c中的kobject_create_and_add定义:struct kobject *kobject_create_and_add(const char *name, struct kobject *parent)
{
struct kobject *kobj;
int retval;
kobj = kobject_create();
if (!kobj)
return NULL;
retval = kobject_add(kobj, parent, "%s", name);
if (retval) {
printk(KERN_WARNING "%s: kobject_add error: %d\n",
__func__, retval);
kobject_put(kobj);
kobj = NULL;
}
return kobj;
}
EXPORT_SYMBOL_GPL(kobject_create_and_add);
它的第1个参数是要建的目录的名称,第2个参数是父目录的kobject对象(这意为着不光可以在/sys/devices/platform下创建,还可以在任意目录下创建)。
相关文章推荐
- loadrunner中的进程与线程的区别
- RecyclerView | ListView 中item为WebView时点击失效
- 31. Next Permutation
- shell常用命令之五 awk
- 掌握人类的15个欲望,做好游戏设计
- 图标
- applicationContext.xml 详解
- 51单片机定时计数器溢出率计算和串口的波特率之间的关系
- Windows 路由表
- 第6章 哈希习题
- 第十章包
- 怎么向Android stutio中导入第三方.jar包
- Android常用面试题大全
- 史上最全最强SpringMVC详细示例实战教程
- 【C#】给无窗口的进程发送消息
- Java类和对象6
- winform学习-----理解小概念-20160517
- 第十章包
- 第十章包
- Spring boot 中 使用 Jackson 将null 字段转换为空字符串写法