歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux內核

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