歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> Linux內核模塊內存申請與釋放

Linux內核模塊內存申請與釋放

日期:2017/3/2 16:45:37   编辑:Linux內核

申請內存:

void *kmalloc(size_t size, int flags)

kmalloc函數和malloc函數相似,它有兩個參數,一個參數是size,即申請內存塊的大小,這個參數比較簡單,就像malloc中的參數一樣。第二個參數是一個標志,在裡面可以指定優先權之類的信息。在Linux中,有以下的一些優先權:

GFP_KERNEL,它的意思是該內存分配是由運行在內核模式的進程調用的,即當內存低於min_free_pages的時候可以讓該進程進入睡眠;

GFP_ATOMIC,原子性的內存分配允許在實際內存低於min_free_pages時繼續分配內存給進程。

GFP_DMA:此標志位需要和GFP_KERNEL、GFP_ATOMIC等一起使用,用來申請用於直接內存訪問的內存頁。

釋放:

Kfree(const void *objp) const void *objp=為需要釋放的內存空間指針

Copyright © Linux教程網 All Rights Reserved