Android V4L2 `devm_kmalloc` 功能解释
devm_kmalloc功能解释
1. 基本定义
void*devm_kmalloc(structdevice*dev,size_tsize,gfp_tgfp)__alloc_size(2);核心功能:资源管理型的内存分配函数,分配的内存会自动与设备绑定,当设备被移除时自动释放。
2. 与普通kmalloc的区别
| 特性 | kmalloc | devm_kmalloc |
|---|---|---|
| 内存释放 | 需要手动kfree | 设备移除时自动释放 |
| 设备关联 | 无 | 绑定到特定设备 |
| 内存泄漏风险 | 高(忘记释放) | 低(自动管理) |
| 使用场景 | 通用内存分配 | 设备驱动专用 |
3. 实现机制(devres 框架)
核心数据结构:struct devres
structdevres{structdevres_nodenode;