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