diff options
author | Michael Brown <mcb30@ipxe.org> | 2020-09-22 13:59:37 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2020-09-22 13:59:37 +0100 |
commit | fe69934191ca46c4948a71f416c21dcc5a29e63a (patch) | |
tree | 55251ec8db4edf485675323c9f123d1e14705b11 /src/interface | |
parent | e08ad61bf78b5b9c8448ce0eac58001d617327b5 (diff) | |
download | ipxe-fe69934191ca46c4948a71f416c21dcc5a29e63a.zip ipxe-fe69934191ca46c4948a71f416c21dcc5a29e63a.tar.gz ipxe-fe69934191ca46c4948a71f416c21dcc5a29e63a.tar.bz2 |
[efi] Show memory map returned by wrapped calls to GetMemoryMap
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface')
-rw-r--r-- | src/interface/efi/efi_wrap.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/interface/efi/efi_wrap.c b/src/interface/efi/efi_wrap.c index ce830fe..66d2d29 100644 --- a/src/interface/efi/efi_wrap.c +++ b/src/interface/efi/efi_wrap.c @@ -282,18 +282,36 @@ efi_get_memory_map_wrapper ( UINTN *memory_map_size, UINT32 *descriptor_version ) { EFI_BOOT_SERVICES *bs = efi_systab->BootServices; void *retaddr = __builtin_return_address ( 0 ); + EFI_MEMORY_DESCRIPTOR *desc; + size_t remaining; EFI_STATUS efirc; DBGC ( colour, "GetMemoryMap ( %#llx, %p ) ", ( ( unsigned long long ) *memory_map_size ), memory_map ); efirc = bs->GetMemoryMap ( memory_map_size, memory_map, map_key, descriptor_size, descriptor_version ); - DBGC ( colour, "= %s ( %#llx, %#llx, %#llx, v%d ) -> %p\n", + DBGC ( colour, "= %s ( %#llx, %#llx, %#llx, v%d", efi_status ( efirc ), ( ( unsigned long long ) *memory_map_size ), ( ( unsigned long long ) *map_key ), ( ( unsigned long long ) *descriptor_size ), - *descriptor_version, retaddr ); + *descriptor_version ); + if ( DBG_EXTRA && ( efirc == 0 ) ) { + DBGC2 ( colour, ",\n" ); + for ( desc = memory_map, remaining = *memory_map_size ; + remaining >= *descriptor_size ; + desc = ( ( ( void * ) desc ) + *descriptor_size ), + remaining -= *descriptor_size ) { + DBGC2 ( colour, "%#016llx+%#08llx %#016llx " + "%s\n", desc->PhysicalStart, + ( desc->NumberOfPages * EFI_PAGE_SIZE ), + desc->Attribute, + efi_memory_type ( desc->Type ) ); + } + } else { + DBGC ( colour, " " ); + } + DBGC ( colour, ") -> %p\n", retaddr ); return efirc; } |