核心函式pages相關

2021-08-21 17:45:44 字數 1630 閱讀 5486

void *alloc_pages_exact(size_t size, gfp_t gfp_mask)

功能:類似於__get_free_pages其實它內部也是呼叫了__get_free_pages,不同之處是__get_free_pages會申請2^order個物理頁,但此函式申請滿足需求的最小頁個數

size:需求的記憶體大小,但需求的和實習分配的不一定會相同

gfp_mask: 分配標識 gfp_kernek gfp_atomic等

標頭檔案: #include

void free_pages_exact(void *virt, size_t size)

功能:釋放由alloc_pages_exact分配的記憶體,其內部會呼叫free_pages()

virt:由alloc_pages_exact分配的記憶體的位址

size:記憶體的大小

標頭檔案: #include

#define virt_to_page(addr)    (mem_map + (((unsigned long)(addr)-page_offset) >> page_shift))

功能: 根據虛擬位址轉換成對應的page結構體

addr:虛擬位址

返回值: struct page結構體指標

#include

下面兩個巨集將頁的引用加1減1

#define page_cache_get(page)        get_page(page)

#define page_cache_release(page)    put_page(page)

page:struct page結構體指標

標頭檔案;#include

static inline int page_count(struct page *page)

功能:獲得頁的引用計數

page:page結構體

標頭檔案;#include

static inline struct zone *page_zone(struct page *page)

功能:根據物理頁獲得此頁所在的記憶體區域(dma32 highmem normal)

page:物理頁結構體指標

返回值:返回代表乙個區域的結構指標

標頭檔案:#include

void *page_address(struct page *page)

功能:根據頁page獲得虛擬位址

page:頁結構指標

返回值:頁對應的虛擬位址

標頭檔案:#include

例子如下:

linux核心相關知識

參考 乙個嵌入式 linux 系統從軟體角度看可以分為四個部分 引導引導程式 bootloader linux 核心,檔案系統,應用程式。其中 bootloader是系統啟動或復位以後執行的第一段 它主要用來初始化處理器及外設,然後呼叫 linux 核心。linux 核心在完成系統的初始化之後需要掛...

mysql相關函式 MySql 相關函式

select group concat column name from table name group by table name,table name2.field 函式自定義排序 select from user where type in 1,2,3 order by field colu...

自相關函式,互相關函式

1.首先說說自相關和互相關的概念。這個是訊號分析裡的概念,他們分別表示的是兩個時間序列之間和同乙個時間序列在任意兩個不同時刻的取值之間的相關程度,即互相關 函式是描述隨機訊號x t y t 在任意兩個不同時刻t1,t2的取值之間的相關程度,自相關函式是描述隨機訊號x t 在任意兩個不同時刻t1,t2...