static efi_status_t efi_get_memory_map(efi_system_table_t *sys_table_arg,
efi_memory_desc_t **map,
unsigned long *map_size,
- unsigned long *desc_size)
+ unsigned long *desc_size,
+ u32 *desc_ver,
+ unsigned long *key_ptr)
{
efi_memory_desc_t *m = NULL;
efi_status_t status;
if (status != EFI_SUCCESS)
efi_call_phys1(sys_table_arg->boottime->free_pool, m);
+ if (key_ptr && status == EFI_SUCCESS)
+ *key_ptr = key;
+ if (desc_ver && status == EFI_SUCCESS)
+ *desc_ver = desc_version;
fail:
*map = m;
u64 max_addr = 0;
int i;
- status = efi_get_memory_map(sys_table_arg, &map, &map_size, &desc_size);
+ status = efi_get_memory_map(sys_table_arg, &map, &map_size, &desc_size,
+ NULL, NULL);
if (status != EFI_SUCCESS)
goto fail;
unsigned long nr_pages;
int i;
- status = efi_get_memory_map(sys_table_arg, &map, &map_size, &desc_size);
+ status = efi_get_memory_map(sys_table_arg, &map, &map_size, &desc_size,
+ NULL, NULL);
if (status != EFI_SUCCESS)
goto fail;