diff options
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/vmpa.c | 43 | ||||
-rw-r--r-- | src/arch/vmpa.h | 3 |
2 files changed, 28 insertions, 18 deletions
diff --git a/src/arch/vmpa.c b/src/arch/vmpa.c index fcc1e2f..b306f00 100644 --- a/src/arch/vmpa.c +++ b/src/arch/vmpa.c @@ -30,6 +30,9 @@ #include <string.h> +#include <i18n.h> + + #include "../common/io.h" @@ -404,29 +407,33 @@ char *vmpa2_virt_to_string(const vmpa2t *addr, MemoryDataSize msize, char buffer { size_t ret; /* Retour de l'impression */ - switch (msize) - { - case MDS_8_BITS: - ret = snprintf(buffer, VMPA_MAX_LEN,"0x%02" PRIx64, addr->virtual); - break; + if (addr->virtual == VMPA_NO_VIRTUAL) + ret = snprintf(buffer, VMPA_MAX_LEN, _("(none)")); - case MDS_16_BITS: - ret = snprintf(buffer, VMPA_MAX_LEN, "0x%04" PRIx64, addr->virtual); - break; + else + switch (msize) + { + case MDS_8_BITS: + ret = snprintf(buffer, VMPA_MAX_LEN,"0x%02" PRIx64, addr->virtual); + break; - case MDS_32_BITS: - ret = snprintf(buffer, VMPA_MAX_LEN, "0x%08" PRIx64, addr->virtual); - break; + case MDS_16_BITS: + ret = snprintf(buffer, VMPA_MAX_LEN, "0x%04" PRIx64, addr->virtual); + break; - case MDS_64_BITS: - ret = snprintf(buffer, VMPA_MAX_LEN, "0x%016" PRIx64, addr->virtual); - break; + case MDS_32_BITS: + ret = snprintf(buffer, VMPA_MAX_LEN, "0x%08" PRIx64, addr->virtual); + break; - default: - ret = snprintf(buffer, VMPA_MAX_LEN, "0x%" PRIx64, addr->virtual); - break; + case MDS_64_BITS: + ret = snprintf(buffer, VMPA_MAX_LEN, "0x%016" PRIx64, addr->virtual); + break; - } + default: + ret = snprintf(buffer, VMPA_MAX_LEN, "0x%" PRIx64, addr->virtual); + break; + + } if (length != NULL) *length = ret; diff --git a/src/arch/vmpa.h b/src/arch/vmpa.h index 54dbda9..6f8e809 100644 --- a/src/arch/vmpa.h +++ b/src/arch/vmpa.h @@ -91,6 +91,9 @@ int cmp_vmpa(const vmpa2t *, const vmpa2t *); #define get_phy_addr(a) (a)->physical #define get_virt_addr(a) (a)->virtual +#define has_phys_addr(a) ((a)->physical != VMPA_NO_PHYSICAL) +#define has_virt_addr(a) ((a)->virtual != VMPA_NO_VIRTUAL) + #define dup_vmpa(src) \ make_vmpa(get_phy_addr(src), get_virt_addr(src)) |