Linux内核 device_register()

函数:device_register()

函数device_register()在实现过程中调用了函数device_initialize()和函数device_add(),而函数device_initialize()完成对新创建的逻辑设备对象部分字段的初始化工作,主要包括设备引用计数器、信号量、设备访问锁等字段的初始化工作,函数device_add()首先对逻辑设备对象部分字段进行初始化,然后将此逻辑设备加到Linux内核系统的设备驱动程序模型中。函数device_add()能够自动地在/sys/devices/virtual目录下创建新的逻辑设备目录,在/dev目录下创建与逻辑类对应的设备文件。所以函数device_register()的作用就是二者的结合。

文件包含:

#include <linux/device.h>

函数定义:

在内核源码中的位置:linux-3.19.3/drivers/base/core.c

函数定义格式:

int __must_check device_register(struct device *dev)

输入参数说明:

  • 函数device_register()的输入参数是struct device结构体类型的指针,代表函数即将被操作的逻辑设备,此结构体的定义在酷客教程函数device_create()的分析中已详细说明。

返回参数说明:

  • 函数device_register()的返回结果是int类型的变量,可能的取值为-ENOMEM、0,其中ENOMEM的值为12。

实例解析:

函数device_register()必须和函数device_unregister()配对使用,所以此函数的实例解析请读者参考酷客教程函数device_unregister()的分析文档。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!