1.devm_kzalloc()

函数 devm_kzalloc() 和kzalloc()一样都是内核内存分配函数,但是devm_kzalloc()是跟设备(device)有关的,当设备(device)被detached或者驱动(driver)卸载(unloaded)时,内存会被自动释放。另外,当内存不在使用时,可以使用函数devm_kfree()释放。
而kzalloc()则需要手动释放(使用kfree()),但如果工程师检查不仔细,则有可能造成内存泄漏。
下面是devm_kzalloc()的实现:
/* managed devm_k.alloc/kfree for device drivers */  
extern void *devm_kmalloc(struct device *dev, size_t size, gfp_t gfp);  
static inline void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp)  
{  
    return devm_kmalloc(dev, size, gfp | __GFP_ZERO);  
}  

参考:http://blog.csdn.net/jgw2008/article/details/52691568

 

 

 

相关文章:

  • 2021-12-21
  • 2021-12-28
  • 2021-08-25
  • 2021-04-19
  • 2021-12-26
  • 2022-02-27
  • 2021-10-31
猜你喜欢
  • 2022-12-23
  • 2021-11-01
  • 2021-07-14
  • 2021-06-14
  • 2022-12-23
  • 2021-05-30
相关资源
相似解决方案