Linux内核API device_register

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

device_register文件包含

#include <linux/device.h>

device_register函数定义

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

函数定义格式:

int __must_check device_register(struct device *dev)

device_register输入参数说明

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

device_register返回参数说明

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

device_register实例解析

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

赞(0)
未经允许不得转载:极客笔记 » Linux内核API device_register
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

赞助商