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) 编辑 收藏 举报