linux device_create_file属性 怎么调用,device_create_file创建多级目录

本文介绍了Linux内核如何自动创建设备节点,重点讲解了class_create、device_create以及device_create_file三个函数的用法。class_create用于创建设备类,device_create根据设备类在/dev下创建设备节点,而device_create_file则用于在/sys/class/下创建设备属性文件,允许通过读写这些文件来操作设备数据。
摘要由CSDN通过智能技术生成

开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点(包括ldd3中不少例子也是这样),实际上现在Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点。

内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建好了这个类,再调用device_create(…)函数来在/dev目录下创建相应的设备节点。这样,加载模块的时候,用户空间中的udev会自动响应device_create(…)函数,去/sysfs下寻找对应的类从而创建设备节点。

此外,利用device_create_file函数可以在/sys/class/下创建对应的属性文件,从而通过对该文件的读写实现特定的数据操作。

一、class_create

官方说明:

/* This is a

#define to keep the compiler from merging different

* instances of the __key variable */

#define

class_create(owner, name)             \

({                                            \

static struct lock_class_key __key;   \

__class_create(owner, name, &__key);  \

})

/**

* class_create - create a struct class

structure

* @owner: pointer to the module that is to

"own" this struct class

* @name: pointer to a string for the name of

this class.

* @key: the lock_class_key for this class;

used by mutex lock debugging

*

* This is used to create a struct class

pointer that can then be used

* in calls to device_create().

*

* Returns &struct class pointe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值