device, driver 和bus的编程方式相似
一、定义
在/sys某个目录下创建一个文件:
struct bus_attribute {
struct attribute attr;
ssize_t (*show)(struct bus_type *bus, char *buf);
ssize_t (*store)(struct bus_type *bus, const char *buf, size_t count);
};
#define BUS_ATTR(_name, _mode, _show, _store) \
struct bus_attribute bus_attr_##_name = __ATTR(_name, _mode, _show, _store)
二、使用(2选1):
1、
BUS_ATTR(bus_version,0666,bus_version_show, bus_version_store);
2、
ssize_t bus_version_show(struct bus_type *bus, char *buf)
{
return snprintf(buf,128, "%s", bus_version);
}
ssize_t bus_version_store(struct bus_type *bus, const char *buf, size_t count)
{
return snprintf(bus_version,count,"%s", buf);
}
3、在 xxx_probe函数中(2选1):
bus_create_file(&mybus, &bus_attr_bus_version);
4、删除文件(2选1):
bus_remove_file(&mybus, &bus_attr_bus_version);