Linux中常用的函数

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

 2. simple_write_to_buffer() 能正常使用的见 bootkpi_writer,可能需要目的地buf足够大,才不至于出问题(比如多次写)。

 

 

posted on 2017-09-08 09:58  Hello-World3  阅读(382)  评论(0编辑  收藏  举报

导航