UEFI 支援

UEFI stub 庫函式

efi_status_t efi_get_memory_map(struct efi_boot_memmap **map, bool install_cfg_tbl)

獲取記憶體對映

引數

struct efi_boot_memmap **map

指向記憶體對映指標的指標,新分配的記憶體對映將被分配到該指標

bool install_cfg_tbl

是否將啟動記憶體對映安裝為配置表

描述

檢索 UEFI 記憶體對映。分配的記憶體為最多 EFI_MMAP_NR_SLACK_SLOTS 個額外的記憶體對映條目留出了空間。

返回值

狀態碼

efi_status_t efi_allocate_pages(unsigned long size, unsigned long *addr, unsigned long max)

分配記憶體頁

引數

unsigned long size

要分配的最小位元組數

unsigned long *addr

返回時,分配的第一個頁面的地址。 第一個分配的頁面具有 EFI_ALLOC_ALIGN 對齊方式,它是架構相關的頁面大小的倍數。

unsigned long max

最後分配的記憶體頁面不應超過的地址

描述

將頁面分配為 EFI_LOADER_DATA。分配的頁面根據 EFI_ALLOC_ALIGN 對齊。 最後分配的頁面將不會超過 **max** 給定的地址。

返回值

狀態碼

void efi_free(unsigned long size, unsigned long addr)

釋放記憶體頁

引數

unsigned long size

要釋放的記憶體區域的大小(以位元組為單位)

unsigned long addr

要釋放的記憶體區域的起始地址(必須是 EFI_PAGE_SIZE 對齊的)

描述

**size** 向上舍入到 EFI_ALLOC_ALIGN 的倍數,它是架構特定的 EFI_PAGE_SIZE 的倍數。因此,此函式應僅用於返回使用 efi_allocate_pages() 或 efi_low_alloc_above() 分配的頁面。