设备节点文件创建函数

  1. 设备节点文件创建函数

使用杂项字符设备注册设备驱动时,可以自动创建设备节点文件。

但是使用早期字符设备和标准字符设备注册设备节点文件时并不能自动创建设备节点文件。

猜测杂项字符设备注册函数中,包含有设备节点文件注册的函数

杂项字符设备注册函数分析:misc_register();

misc_register();

--> device_create(misc_class, misc->parent, dev,  misc, "%s", misc->name);

......

分析杂项字符设备注册函数,得到设备节点文件创建函数:device_create();

 

device_create();

函数原型:struct device *device_create(struct class *class,  struct device *parent,

 dev_t devt,  void *drvdata, const char *fmt, ...);

函数功能:根据提供的设备号,在文件系统/dev/目录下创建设备节点文件

形参列表:

class:类 -- 在文件系统中用来管理设备节点文件的类

parent:当前设备的父设备 -- (无:NULL)

devt:设备号 -- 创建设备节点文件所关联的设备号

drvdata:当前设备驱动的私有数据 -- 任何数据(无:NULL)

const char *fmt, ... :设备节点文件名(格式化字符串传参)

返回值:

成功:当前设备的设备结构体指针

失败:错误码

删除设备节点文件:void  device_destroy(struct class *class, dev_t devt);

 

class_create();

函数原型:struct class*  class_create(struct module *owner, const char *name);

函数功能:在文件系统中创建一个类,用来管理一类设备节点文件。 (创建目录:/sys/class/)

形参列表:

owner:THIS_MODULE

name:类的名称

返回值:

成功:创建出来的类的结构体指针

失败:错误码

删除类:void  class_destroy(struct class *cls);

 

只要在早期字符设备或标准字符设备的设备驱动中,在设备注册成功之后,调用class_create()和device_create()。这样早期字符设备驱动和标准字符设备驱动也将能够自动创建设备节点文件。

补充:

source insight使用技巧:

ctrl  +  鼠标左键 :跳转到定义处

ctrl  +  / :整个工程搜索某一个字符串

ctrl  +  f :当前文件中搜索某一个字符串

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值