函数:cdev_add()
函数cdev_add()用于向Linux内核系统中添加一个新的cdev结构体变量所描述的字符设备,并且使这个设备立即可用。
文件包含:
#include <linux/cdev.h>
函数定义:
在内核源码中的位置:linux-3.19.3/fs/char_dev.c
函数定义格式:
int cdev_add(struct cdev *, dev_t, unsigned)
输入参数说明:
- 函数
cdev_add()
有三个输入参数,第一个输入参数代表即将被添加入Linux内核系统的字符设备,此结构体在酷客教程函数cdev_alloc()分析文档的返回参数说明部分有详细解释; -
第二个输入参数是
dev_t
类型的变量,此变量代表设备的设备号,其中包括主设备号和次设备号,其内核定义如下:
typedef __kernel_dev_t dev_t;
其中__kernel_dev_t的定义如下:
typedef __u32 __kernel_dev_t;
由此,可知dev_t其实是一个无符号的32位整数,其中32为的前12位代表主设备号,后20位代表此设备号。
- 第三个输入参数是无符号的整型变量,代表想注册设备的设备号的范围,用于给struct cdev中的字段count赋值。
返回参数说明:
- 函数
cdev_add()
返回int型的结果,表示设备是否添加成功。如果成功,则返回0,如果失败,则返回- ENOMEM, ENOMEM的被定义为12。
实例解析:
函数cdev_add()
必须与函数cdev_del()
配对使用,才能保证测试程序不会出问题,函数cdev_add()的测试程序及结果分析请参考酷客教程函数cdev_del()的分析文档。
酷客网相关文章:
评论前必须登录!
注册