Linux内核API get_device

函数get_device()用来增加输入参数代表的逻辑设备的引用计数,使引用计数加1,设备的引用计数器是dev->kobj.kref.refcount的值,即函数更改字段refcount的值。

get_device文件包含

#include <linux/device.h>

get_device函数定义

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

函数定义格式:

struct device *get_device(struct device *dev)

get_device输入参数说明

  • 函数get_device()的输入参数是struct device结构体类型的指针,代表增加计数的逻辑设备,此结构体在极客笔记函数device_create()的分析中已有详细说明。

get_device返回参数说明

  • 函数get_device()的返回结果是struct device结构体类型的变量,返回的结果与传入的参数代表的是同一个变量,只是此时变量的引用计数器的值增大了1。

get_device实例解析

函数get_device()和函数put_device()一般配对使用,测试程序及结果分析在此没有列出,详细信息请读者参考极客笔记函数put_device()的分析文档。

函数get_device()会增加设备的引用计数,而此次增加只是想说明函数的作用,然而当设备的引用计数不是0时,设备的删除会出错,所以在增加之后应该人工减小设备的引用计数。函数put_device()用于减少设备的引用计数,为了保证安全,在函数get_device()之后调用都应使用函数put_device()进行设备的引用计数减少操作。

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

评论 抢沙发

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

赞助商