struct regmap_device *regmap_device_register//寄存器设备驱动注册
(struct regmap_properties *props,
struct regmap_fops *rops,
struct device *parent,
void *client, void *drvdata)
{
struct regmap_device *rd;
int ret = 0, i;
char device_name[32];
unsigned char data;
pr_info("regmap_device_register: name = %s\n", props->name);
rd = devm_kzalloc(parent, sizeof(*rd), GFP_KERNEL);
//向内核申请内存:devm_kzalloc() 是具有资源管理的 kzalloc()。使用资源管理(resource-managed)函数分配的内存,是会与所属设备相关联。当设备从系统中分离或者设备驱动被卸载,该内存会被自动释放。
if (!rd) {
pr_info("regmap_device memory allocate fail\n");
return NULL;
}
.
.
.
}
设备注册函数过程一般会用到内存申请,如上。下面我们参考资料分析一下过程。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
前言
Linux Kernel devm_* API源码分析
本文通过对devm_kzalloc函数的实现进行解析,帮助理解devm系列api的用法。
devm系列api的主要特别之处:
&nbs

本文深入解析Linux内核中的devm_kzalloc函数,探讨其在设备管理中的作用,包括如何自动管理资源以及内存申请和释放的流程。通过分析代码,阐述了devm系列API如何简化设备驱动开发中的内存操作。
最低0.47元/天 解锁文章
2005

被折叠的 条评论
为什么被折叠?



