UEFI 支持¶
UEFI 存根库函数¶
-
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() 分配的页面。