linux备忘-驱动class 节点

驱动class create

模版demo代码如下:

struct class *pSmClass = NULL; //设备类指针

//读取xxx节点
static ssize_t xxx_show(struct class *class, struct class_attribute *attr,
    char *buf)
{
    return 0;
}

//写入xxx节点
static ssize_t xxx_store(struct class *class, struct class_attribute *attr,
    const char *buf, size_t count)
{
    return count;
}
/**声明文件属性为rw**/
CLASS_ATTR_RW(xxx);

static int __init _sm_class_create(void)
{
    int err;

	/**创建一个class 对象**/
    pSmClass = class_create(THIS_MODULE, "share_mem");
    if(IS_ERR(pSmClass))
    {
        pr_err("class_create error..\n");
        return -1;
    }

	/**创建class 文件节点,节点名为xxx**/
    err = class_create_file(pSmClass, &class_attr_xxx);
    if (err) 
    {
        pr_err("class create file error\r\n");
        goto CLASS_CREATE_FAIL;
    }
    return 0;

CLASS_CREATE_FAIL:
	/**摧毁一个class文件节点**/
    class_destroy(pSmClass);
    return err;
}

说明:

使用步骤

  1. 通过struct class *定义一个class对象的全局变量指针
  2. 通过class_create() 创建一个class对象,并把全局变量指针指向该对象
  3. 通过CLASS_ATTR_RW(xxx) 定义一个文件名为"xxx"的文件节点变量
  4. 声明文件写入回调函数为xxx_store
  5. 声明文件读取回调函数为xxx_show
  6. 通过class_create_file() 为class对象创建对应的xxx文件节点
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值