@ -15,6 +15,8 @@
DECLARE_GLOBAL_DATA_PTR ;
DECLARE_GLOBAL_DATA_PTR ;
efi_uintn_t efi_memory_map_key ;
struct efi_mem_list {
struct efi_mem_list {
struct list_head link ;
struct list_head link ;
struct efi_mem_desc desc ;
struct efi_mem_desc desc ;
@ -160,9 +162,13 @@ uint64_t efi_add_memory_map(uint64_t start, uint64_t pages, int memory_type,
debug ( " %s: 0x% " PRIx64 " 0x% " PRIx64 " %d %s \n " , __func__ ,
debug ( " %s: 0x% " PRIx64 " 0x% " PRIx64 " %d %s \n " , __func__ ,
start , pages , memory_type , overlap_only_ram ? " yes " : " no " ) ;
start , pages , memory_type , overlap_only_ram ? " yes " : " no " ) ;
if ( memory_type > = EFI_MAX_MEMORY_TYPE )
return EFI_INVALID_PARAMETER ;
if ( ! pages )
if ( ! pages )
return start ;
return start ;
+ + efi_memory_map_key ;
newlist = calloc ( 1 , sizeof ( * newlist ) ) ;
newlist = calloc ( 1 , sizeof ( * newlist ) ) ;
newlist - > desc . type = memory_type ;
newlist - > desc . type = memory_type ;
newlist - > desc . physical_start = start ;
newlist - > desc . physical_start = start ;
@ -487,7 +493,7 @@ efi_status_t efi_get_memory_map(efi_uintn_t *memory_map_size,
}
}
if ( map_key )
if ( map_key )
* map_key = 0 ;
* map_key = efi_memory_map_key ;
return EFI_SUCCESS ;
return EFI_SUCCESS ;
}
}