get_free_page()

模組如果需要比較大的記憶體,通常最好使用頁本位(page-oriented)技術。 配置記憶頁,你有下列函式可選擇:

get_zeroed_page(unsigned int flags);

回傳一指向新記憶頁的指標,記憶頁全部都填0。

__get_free_page(unsigned int flags);

不清除原有內容。

__get_free_page(unsigned int flags,int order);

配置一個跨頁的連續記憶區,並傳回一個指向記憶區第一個位元組的指標。記憶區的內容不會被清除。

這裡的flags與kmalloc()所用的相同,order是你要配置的頁數的2的對數(logN),若想配置一頁記憶體order等於0,若要配置8頁,order等於3。為了幫助計算階數,可以使用get_order()函式。

當程式不再需要記憶頁,就應該以下列函式之一將其釋放:

void free_page(unsigned long addr);
void free_page(unsigned long addr,unsigned order);

results matching ""

    No results matching ""