函数device_add()首先对逻辑设备对象部分字段进行初始化,然后将此逻辑设备加到Linux内核系统的设备驱动程序模型中。函数能够自动地在/sys/devices/virtual
目录下创建新的逻辑设备目录,在/dev
目录下创建与逻辑类对应的设备文件。
device_add文件包含
#include <linux/device.h>
device_add函数定义
在内核源码中的位置:linux-3.19.3/drivers/base/core.c
函数定义格式:
int __must_check device_add(struct device *dev)
device_add输入参数说明
- 函数的输入参数是
struct device
结构体类型的指针变量,代表即将被添加到Linux内核系统的逻辑设备,此结构体的定义在函数device_create()说明部分有详细说明,请读者参考极客笔记函数device_create()的说明文档。
device_add返回参数说明
- 函数
evice_add()
的返回结果是int类型的变量,可能的取值为-ENOMEM、0,其中ENOMEM的值为12。
device_add实例解析
此函数的实例解析没有单独说明,需要和函数device_initialize()、函数device_del()一起使用,请读者参考极客笔记函数device_initialize()的分析文档。