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() 分配的頁面。