file_sys/program_metadata: Print out more descriptive address space descriptions

Provides extra information that makes it easier to tell if an executable
being run is using a 36-bit address space or a 39-bit address space.
While we don't support AArch32 executables yet, this also puts in
distinguishing information for the 32-bit address space types as well.
This commit is contained in:
Lioncash 2018-12-27 19:16:43 -05:00
parent e84e4fd3f8
commit 9aa68212d9

View File

@ -92,16 +92,20 @@ void ProgramMetadata::Print() const {
LOG_DEBUG(Service_FS, " > 64-bit instructions: {}", LOG_DEBUG(Service_FS, " > 64-bit instructions: {}",
npdm_header.has_64_bit_instructions ? "YES" : "NO"); npdm_header.has_64_bit_instructions ? "YES" : "NO");
auto address_space = "Unknown"; const char* address_space = "Unknown";
switch (npdm_header.address_space_type) { switch (npdm_header.address_space_type) {
case ProgramAddressSpaceType::Is36Bit: case ProgramAddressSpaceType::Is36Bit:
address_space = "64-bit (36-bit address space)";
break;
case ProgramAddressSpaceType::Is39Bit: case ProgramAddressSpaceType::Is39Bit:
address_space = "64-bit"; address_space = "64-bit (39-bit address space)";
break; break;
case ProgramAddressSpaceType::Is32Bit: case ProgramAddressSpaceType::Is32Bit:
case ProgramAddressSpaceType::Is32BitNoMap:
address_space = "32-bit"; address_space = "32-bit";
break; break;
case ProgramAddressSpaceType::Is32BitNoMap:
address_space = "32-bit (no map region)";
break;
} }
LOG_DEBUG(Service_FS, " > Address space: {}\n", address_space); LOG_DEBUG(Service_FS, " > Address space: {}\n", address_space);