UEFI Support¶
UEFI stub library functions¶
-
efi_status_t efi_get_memory_map(struct efi_boot_memmap *map)¶
get memory map
Parameters
struct efi_boot_memmap *map
on return pointer to memory map
Description
Retrieve the UEFI memory map. The allocated memory leaves room for up to EFI_MMAP_NR_SLACK_SLOTS additional memory map entries.
Return
status code
-
efi_status_t efi_allocate_pages(unsigned long size, unsigned long *addr, unsigned long max)¶
Allocate memory pages
Parameters
unsigned long size
minimum number of bytes to allocate
unsigned long *addr
On return the address of the first allocated page. The first allocated page has alignment EFI_ALLOC_ALIGN which is an architecture dependent multiple of the page size.
unsigned long max
the address that the last allocated memory page shall not exceed
Description
Allocate pages as EFI_LOADER_DATA. The allocated pages are aligned according to EFI_ALLOC_ALIGN. The last allocated page will not exceed the address given by max.
Return
status code
-
void efi_free(unsigned long size, unsigned long addr)¶
free memory pages
Parameters
unsigned long size
size of the memory area to free in bytes
unsigned long addr
start of the memory area to free (must be EFI_PAGE_SIZE aligned)
Description
size is rounded up to a multiple of EFI_ALLOC_ALIGN which is an
architecture specific multiple of EFI_PAGE_SIZE. So this function should
only be used to return pages allocated with efi_allocate_pages()
or
efi_low_alloc_above().