在驱动中创建文件(/sys 中查询)

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)

二、使用(21):
1/*
    struct bus_attribute  bus_attr_bus_version  = { 
        .attr = {
                    .name = "bus_version",
                        .mode = 0666 
        },  
        .show   = bus_version_show,                 
        .store  = bus_version_store,                    
    }
*/
    BUS_ATTR(bus_version,0666,bus_version_show, bus_version_store);

2//给用户返回数据buf
ssize_t bus_version_show(struct bus_type *bus, char *buf)
{
    return snprintf(buf,128, "%s", bus_version);
}
//接收用户的数据buf
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函数中(21):
//  /sys/bus/my_bus/bus_version

//  bus_create_file(&mybus, &bus_file_attr);
    bus_create_file(&mybus, &bus_attr_bus_version);


4、删除文件(21):
//  bus_remove_file(&mybus,&bus_file_attr);
    bus_remove_file(&mybus, &bus_attr_bus_version);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值