内核bus代码bus_attr_uevent的定义
时间:2011-02-18
来源:互联网
查资料说是一个宏定义具体如下:
- #define __ATTR(_name,_mode,_show,_store) { \
- .attr = {.name = __stringify(_name), .mode = _mode }, \
- .show = _show, \
- .store = _store, \
- }
-
- #define BUS_ATTR(_name, _mode, _show, _store) \
- struct bus_attribute bus_attr_##_name = __ATTR(_name, _mode, _show, _store)
- static BUS_ATTR(uevent, S_IWUSR, NULL, bus_uevent_store);
bus_attr_##_name,中间两个“#”号是做什么用的?
作者: ntqumeng 发布时间: 2011-02-18
假设BUS_ATTR(a, b , c, d)
那么就被扩展成了
a_b = _ATTR(....)
作者: amarant 发布时间: 2011-02-18
作者: Godbach 发布时间: 2011-02-18
是连接bus_attr_##_name的bus_attr_和_name这个两个部分吗?
那error = driver_create_file(drv, &driver_attr_uevent);中的driver_attr_uevent怎么理解呀..
定义的宏是BUS_ATTR,bus_attr_##_name只是替代部分
求教先谢过了
作者: ntqumeng 发布时间: 2011-02-18
作者: amarant 发布时间: 2011-02-18
惭愧,专业不是计算机,没有系统的学过C语言,最近正在补呢
作者: ntqumeng 发布时间: 2011-02-18
是的
那error = driver_create_file(drv, &driver_attr_uevent);中的driver_attr_uevent怎么理解呀..
driver_attr_uevent应该就是一个具体属性,你可以看看driver_create_file的源码
作者: amarant 发布时间: 2011-02-18
看driver_create_file的定义
- int driver_create_file(struct device_driver *drv,
- const struct driver_attribute *attr)
- {
- int error;
- if (drv)
- error = sysfs_create_file(&drv->p->kobj, &attr->attr);
- else
- error = -EINVAL;
- return error;
- }
怎么都感觉反过来了
作者: ntqumeng 发布时间: 2011-02-18
这个不是吧,那个宏只是初始化一个数据项,这个函数是在sysfs下生成相应的节点
作者: amarant 发布时间: 2011-02-18
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28