@ -49,7 +49,9 @@ static void efi_printk(efi_system_table_t *sys_table_arg, char *str)
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 ;
@ -77,6 +79,10 @@ again:
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 ;
@ -97,7 +103,8 @@ static efi_status_t efi_high_alloc(efi_system_table_t *sys_table_arg,
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 ;
@ -183,7 +190,8 @@ static efi_status_t efi_low_alloc(efi_system_table_t *sys_table_arg,
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 ;