Linux-设备节点文件创建函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-设备节点文件创建函数相关的知识,希望对你有一定的参考价值。

.设备节点文件创建函数
使用杂项字符设备注册设备驱动时,可以自动创建设备节点文件。
但是使用早期字符设备和标准字符设备注册设备节点文件时并不能自动创建设备节点文件。
猜测:杂项字符设备注册函数中,包含有设备节点文件注册的函数!
杂项字符设备注册函数分析: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 :当前文件中搜索某一个字符串

以上是关于Linux-设备节点文件创建函数的主要内容,如果未能解决你的问题,请参考以下文章

Linux 设备树

linux驱动之设备号与创建设备节点

字符设备驱动程序自动创建设备节点详解

自动创建设备节点-12

linux driver ------ 字符设备驱动之“ 创建设备节点流程 ”

Linux设备文件自动生成