Patchwork [02/18] acpi: acpitables: print format using inttypes

login
register
mail settings
Submitter Colin King
Date Sept. 23, 2012, 7:03 p.m.
Message ID <1348427041-4913-3-git-send-email-colin.king@canonical.com>
Download mbox | patch
Permalink /patch/186254/
State Accepted
Headers show

Comments

Colin King - Sept. 23, 2012, 7:03 p.m.
From: Colin Ian King <colin.king@canonical.com>

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 src/acpi/acpitables/acpitables.c |   97 ++++++++++++++++++++++++++------------
 1 file changed, 68 insertions(+), 29 deletions(-)
Keng-Yu Lin - Sept. 25, 2012, 10:05 a.m.
On Mon, Sep 24, 2012 at 3:03 AM, Colin King <colin.king@canonical.com> wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  src/acpi/acpitables/acpitables.c |   97 ++++++++++++++++++++++++++------------
>  1 file changed, 68 insertions(+), 29 deletions(-)
>
> diff --git a/src/acpi/acpitables/acpitables.c b/src/acpi/acpitables/acpitables.c
> index 73c06a9..1aa3f44 100644
> --- a/src/acpi/acpitables/acpitables.c
> +++ b/src/acpi/acpitables/acpitables.c
> @@ -21,6 +21,7 @@
>  #include <dirent.h>
>  #include <ctype.h>
>  #include <unistd.h>
> +#include <inttypes.h>
>
>  #include "fwts.h"
>
> @@ -30,8 +31,9 @@ static void acpi_table_check_ecdt(fwts_framework *fw, fwts_acpi_table_info *tabl
>
>         if ((ecdt->ec_control.address_space_id != 0) &&
>              (ecdt->ec_control.address_space_id != 1)) {
> -               fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECCtrlAddrSpaceID", "ECDT EC_CONTROL address space id = %hhu, "
> -                               "should be 0 or 1 (System I/O Space or System Memory Space)",
> +               fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECCtrlAddrSpaceID",
> +                               "ECDT EC_CONTROL address space id = %" PRIu8
> +                               ", should be 0 or 1 (System I/O Space or System Memory Space)",
>                                 ecdt->ec_control.address_space_id);
>                 fwts_advice(fw, "The ECDT EC_CONTROL address space id was invalid, however the kernel ACPI EC driver "
>                                 "will just assume it an I/O port address.  This will not affect "
> @@ -40,8 +42,9 @@ static void acpi_table_check_ecdt(fwts_framework *fw, fwts_acpi_table_info *tabl
>
>         if ((ecdt->ec_data.address_space_id != 0) &&
>              (ecdt->ec_data.address_space_id != 1)) {
> -               fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECDataAddrSpaceID", "ECDT EC_CONTROL address space id = %hhu, "
> -                               "should be 0 or 1 (System I/O Space or System Memory Space)",
> +               fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECDataAddrSpaceID",
> +                               "ECDT EC_CONTROL address space id = %" PRIu8
> +                               ", should be 0 or 1 (System I/O Space or System Memory Space)",
>                                 ecdt->ec_data.address_space_id);
>                 fwts_advice(fw, "The ECDT EC_DATA address space id was invalid, however the kernel ACPI EC driver "
>                                 "will just assume it an I/O port address.  This will not affect "
> @@ -97,8 +100,11 @@ static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
>                                                 "If FIRMWARE_CTRL and X_FIRMWARE_CTRL are defined, then the kernel just uses the 64 bit version of "
>                                                 "the pointer.");
>                                 if (((uint64_t)fadt->firmware_control != fadt->x_firmware_ctrl)) {
> -                                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "FwCtrl32and64Differ", "FIRMWARE_CONTROL is 0x%x and differs from X_FIRMWARE_CONTROL 0x%llx",
> -                                               (unsigned int)fadt->firmware_control, (unsigned long long int)fadt->x_firmware_ctrl);
> +                                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "FwCtrl32and64Differ",
> +                                               "FIRMWARE_CONTROL is 0x%" PRIx32 " and differs "
> +                                               "from X_FIRMWARE_CONTROL 0x%" PRIx64,
> +                                               fadt->firmware_control,
> +                                               fadt->x_firmware_ctrl);
>                                         fwts_advice(fw, "One would expect the 32 bit FIRMWARE_CTRL and 64 bit X_FIRMWARE_CTRL "
>                                                         "pointers to point to the same FACS, however they don't which is clearly ambiguous and wrong. "
>                                                         "The kernel works around this by using the 64 bit X_FIRMWARE_CTRL pointer to the FACS. ");
> @@ -115,8 +121,10 @@ static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
>                         fwts_advice(fw, "An ACPI 2.0 FADT is being used however the 64 bit X_DSDT is null."
>                                         "The kernel will fall back to using the 32 bit DSDT pointer instead.");
>                 } else if ((uint64_t)fadt->dsdt != fadt->x_dsdt) {
> -                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADT32And64Mismatch", "FADT 32 bit DSDT (0x%x) does not point to same physical address as 64 bit X_DSDT (0x%llx).",
> -                               (unsigned int)fadt->dsdt, (unsigned long long int)fadt->x_dsdt);
> +                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADT32And64Mismatch",
> +                               "FADT 32 bit DSDT (0x%" PRIx32 ") does not point to same "
> +                               "physical address as 64 bit X_DSDT (0x%" PRIx64 ").",
> +                               fadt->dsdt, fadt->x_dsdt);
>                         fwts_advice(fw, "One would expect the 32 bit DSDT and 64 bit X_DSDT "
>                                         "pointers to point to the same DSDT, however they don't which is clearly ambiguous and wrong. "
>                                         "The kernel works around this by using the 64 bit X_DSDT pointer to the DSDT. ");
> @@ -146,19 +154,22 @@ static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
>         }
>
>         if (fadt->pm_tmr_len != 4) {
> -               fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadPMTMRLEN", "FADT PM_TMR_LEN is %hhu, should be 4.", fadt->pm_tmr_len);
> +               fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadPMTMRLEN",
> +                       "FADT PM_TMR_LEN is %" PRIu8 ", should be 4.", fadt->pm_tmr_len);
>                 fwts_advice(fw, "FADT field PM_TMR_LEN defines the number of bytes decoded by PM_TMR_BLK. "
>                                 "This fields value must be 4. If it is not the correct size then the kernel "
>                                 "will not request a region for the pm timer block. ");
>         }
>         if (fadt->gpe0_blk_len & 1) {
> -               fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPEBLKLEN", "FADT GPE0_BLK_LEN is %hhu, should a multiple of 2.", (int)fadt->gpe0_blk_len);
> +               fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPEBLKLEN", "FADT GPE0_BLK_LEN is %" PRIu8
> +                       ", should a multiple of 2.", fadt->gpe0_blk_len);
>                 fwts_advice(fw, "The FADT GPE_BLK_LEN should be a multiple of 2. Because it isn't, the ACPI driver will "
>                                 "not map in the GPE0 region. This could mean that General Purpose Events will not "
>                                 "function correctly (for example lid or ac-power events).");
>         }
>         if (fadt->gpe1_blk_len & 1) {
> -               fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPE1BLKLEN", "FADT GPE1_BLK_LEN is %hhu, should a multiple of 2.", fadt->gpe1_blk_len);
> +               fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPE1BLKLEN", "FADT GPE1_BLK_LEN is %" PRIu8
> +                       ", should a multiple of 2.", fadt->gpe1_blk_len);
>                 fwts_advice(fw, "The FADT GPE_BLK_LEN should be a multiple of 2. Because it isn't, the ACPI driver will "
>                                 "not map in the GPE1 region. This could mean that General Purpose Events will not "
>                                 "function correctly (for example lid or ac-power events).");
> @@ -173,13 +184,15 @@ static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
>          */
>         /*
>         if (fadt->p_lvl2_lat > 100) {
> -               fwts_warning(fw, "FADT P_LVL2_LAT is %hu, a value > 100 indicates a system not to support a C2 state.", fadt->p_lvl2_lat);
> +               fwts_warning(fw, "FADT P_LVL2_LAT is %" PRIi16 ", a value > 100 indicates a "
> +                       "system not to support a C2 state.", fadt->p_lvl2_lat);
>                 fwts_advice(fw, "The FADT P_LVL2_LAT setting specifies the C2 latency in microseconds. The ACPI specification "
>                                 "states that a value > 100 indicates that C2 is not supported and hence the "
>                                 "ACPI processor idle routine will not use C2 power states.");
>         }
>         if (fadt->p_lvl3_lat > 1000) {
> -               fwts_warning(fw, "FADT P_LVL3_LAT is %hu, a value > 1000 indicates a system not to support a C3 state.", fadt->p_lvl3_lat);
> +               fwts_warning(fw, "FADT P_LVL3_LAT is %" PRIu16 ", a value > 1000 indicates a "
> +                       "system not to support a C3 state.", fadt->p_lvl3_lat);
>                 fwts_advice(fw, "The FADT P_LVL2_LAT setting specifies the C3 latency in microseconds. The ACPI specification "
>                                 "states that a value > 1000 indicates that C3 is not supported and hence the "
>                                 "ACPI processor idle routine will not use C3 power states.");
> @@ -199,7 +212,7 @@ static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
>                     (fadt->reset_reg.address_space_id != 1) &&
>                     (fadt->reset_reg.address_space_id != 2)) {
>                         fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadRESETREG",
> -                               "FADT RESET_REG address space ID was %hhu, must be System Memory space (0), "
> +                               "FADT RESET_REG address space ID was %" PRIu8 ", must be System Memory space (0), "
>                                 "System I/O space (1), or PCI configuration space (2).",
>                                 fadt->reset_reg.address_space_id);
>                         fwts_advice(fw, "If the FADT RESET_REG address space ID is not set correctly then ACPI writes "
> @@ -227,7 +240,8 @@ static void acpi_table_check_rsdp(fwts_framework *fw, fwts_acpi_table_info *tabl
>         }
>
>         if (rsdp->revision > 2) {
> -               fwts_failed(fw, LOG_LEVEL_MEDIUM, "RSDPBadRevisionId", "RSDP: revision is %hhu, expected value less than 2.", rsdp->revision);
> +               fwts_failed(fw, LOG_LEVEL_MEDIUM, "RSDPBadRevisionId", "RSDP: revision is %" PRIu8
> +                       ", expected value less than 2.", rsdp->revision);
>                 fwts_advice(fw, "A RSDP revision number greater than 2 probably won't cause any system problems.");
>         }
>  }
> @@ -254,13 +268,17 @@ static void acpi_table_check_sbst(fwts_framework *fw, fwts_acpi_table_info *tabl
>         fwts_acpi_table_sbst *sbst = (fwts_acpi_table_sbst*)table->data;
>
>         if (sbst->critical_energy_level > sbst->low_energy_level) {
> -               fwts_failed(fw, LOG_LEVEL_MEDIUM, "SBSTEnergyLevel1", "SBST Critical Energy Level (%u) is greater than the Low Energy Level (%u).",
> +               fwts_failed(fw, LOG_LEVEL_MEDIUM, "SBSTEnergyLevel1",
> +                       "SBST Critical Energy Level (%" PRIu32 ") "
> +                       "is greater than the Low Energy Level (%" PRIu32 ").",
>                         sbst->critical_energy_level, sbst->low_energy_level);
>                 fwts_advice(fw, "This could affect system behaviour based on incorrect smart battery information. This should be fixed.");
>         }
>
>         if (sbst->low_energy_level > sbst->warning_energy_level) {
> -               fwts_failed(fw, LOG_LEVEL_MEDIUM, "SBSTEnergeyLevel2", "SBST Low Energy Energy Level (%u) is greater than the Warning Energy Level (%u).",
> +               fwts_failed(fw, LOG_LEVEL_MEDIUM, "SBSTEnergeyLevel2",
> +                       "SBST Low Energy Energy Level (%" PRIu32 ") "
> +                       "is greater than the Warning Energy Level (%" PRIu32 ").",
>                         sbst->low_energy_level, sbst->warning_energy_level);
>                 fwts_advice(fw, "This could affect system behaviour based on incorrect smart battery information. This should be fixed.");
>         }
> @@ -296,8 +314,10 @@ static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
>         int i = 0;
>
>         if (madt->flags & 0xfffffffe)
> -               fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTFlagsNonZero", "MADT flags field, bits 1..31 are reserved and should be zero, but are set as: %lx.\n",
> -                       (unsigned long int)madt->flags);
> +               fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTFlagsNonZero",
> +                       "MADT flags field, bits 1..31 are reserved and "
> +                       "should be zero, but are set as: %" PRIx32 ".\n",
> +                       madt->flags);
>
>         data += sizeof(fwts_acpi_table_madt);
>         length -= sizeof(fwts_acpi_table_madt);
> @@ -314,7 +334,10 @@ static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
>                 case 0: {
>                                 fwts_acpi_madt_processor_local_apic *lapic = (fwts_acpi_madt_processor_local_apic *)data;
>                                 if (lapic->flags & 0xfffffffe)
> -                                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTAPICFlagsNonZero", "MADT Local APIC flags field, bits 1..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)lapic->flags);
> +                                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTAPICFlagsNonZero",
> +                                               "MADT Local APIC flags field, bits 1..31 are reserved and "
> +                                               "should be zero, but are set as: %" PRIx32 ".",
> +                                               lapic->flags);
>                                 skip = sizeof(fwts_acpi_madt_processor_local_apic);
>                         }
>                         break;
> @@ -334,21 +357,30 @@ static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
>                                 if (int_override->bus != 0)
>                                         fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTIRQSrcISA", "MADT Interrupt Source Override Bus should be 0 for ISA bus.");
>                                 if (int_override->flags & 0xfffffff0)
> -                                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTIRQSrcFlags", "MADT Interrupt Source Override flags, bits 4..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)int_override->flags);
> +                                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTIRQSrcFlags",
> +                                               "MADT Interrupt Source Override flags, bits 4..31 are reserved "
> +                                               "and should be zero, but are set as: %" PRIx32 ".",
> +                                               int_override->flags);
>                                 skip = sizeof(fwts_acpi_madt_interrupt_override);
>                         }
>                         break;
>                 case 3: {
>                                 fwts_acpi_madt_nmi *nmi = (fwts_acpi_madt_nmi*)data;
>                                 if (nmi->flags & 0xfffffff0)
> -                                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTNMISrcFlags", "MADT Non-Maskable Interrupt Source, flags, bits 4..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)nmi->flags);
> +                                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTNMISrcFlags",
> +                                               "MADT Non-Maskable Interrupt Source, flags, bits 4..31 are reserved "
> +                                               "and should be zero, but are set as: %" PRIx32 ".",
> +                                               nmi->flags);
>                                 skip = sizeof(fwts_acpi_madt_nmi);
>                         }
>                         break;
>                 case 4: {
>                                 fwts_acpi_madt_local_apic_nmi *nmi = (fwts_acpi_madt_local_apic_nmi*)data;
>                                 if (nmi->flags & 0xfffffff0)
> -                                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTLAPICNMIFlags", "MADT Local APIC NMI flags, bits 4..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)nmi->flags);
> +                                       fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTLAPICNMIFlags",
> +                                               "MADT Local APIC NMI flags, bits 4..31 are reserved "
> +                                               "and should be zero, but are set as: %" PRIx32 ".",
> +                                               nmi->flags);
>                                 skip = sizeof(fwts_acpi_madt_local_apic_nmi);
>                         }
>                         break;
> @@ -373,16 +405,21 @@ static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
>                                 fwts_acpi_madt_platform_int_source *src = (fwts_acpi_madt_platform_int_source*)data;
>                                 if (src->flags & 0xfffffff0)
>                                         fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTPlatIRQSrcFlags",
> -                                               "MADT Platform Interrupt Source, flags, bits 4..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)src->flags);
> +                                               "MADT Platform Interrupt Source, flags, bits 4..31 are "
> +                                               "reserved and should be zero, but are set as: %" PRIx32 ".",
> +                                               src->flags);
>                                 if (src->type > 3)
>                                         fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTPlatIRQType",
> -                                               "MADT Platform Interrupt Source, type field is %hhu, should be 1..3.", src->type);
> +                                               "MADT Platform Interrupt Source, type field is %" PRIu8
> +                                               ", should be 1..3.", src->type);
>                                 if (src->io_sapic_vector == 0)
>                                         fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTPlatIRQIOSAPICVector",
>                                                 "MADT Platform Interrupt Source, IO SAPIC Vector is zero, appears not to be defined.");
>                                 if (src->pis_flags & 0xfffffffe)
>                                         fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTPlatIRQSrcFlagsNonZero",
> -                                               "MADT Platform Interrupt Source, Platform Interrupt Source flag bits 1..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)src->pis_flags);
> +                                               "MADT Platform Interrupt Source, Platform Interrupt Source flag "
> +                                               "bits 1..31 are reserved and should be zero, but are "
> +                                               "set as: %" PRIx32 ".", src->pis_flags);
>                                 skip = (sizeof(fwts_acpi_madt_platform_int_source));
>                         }
>                         break;
> @@ -393,7 +430,9 @@ static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
>                                 fwts_acpi_madt_local_x2apic_nmi *nmi = (fwts_acpi_madt_local_x2apic_nmi*)data;
>                                 if (nmi->flags & 0xfffffff0)
>                                         fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTLAPICX2APICNMIFlags",
> -                                               "MADT Local x2APIC NMI, flags, bits 4..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)nmi->flags);
> +                                               "MADT Local x2APIC NMI, flags, bits 4..31 are reserved and "
> +                                               "should be zero, but are set as: %" PRIx32 ".",
> +                                               nmi->flags);
>                                 skip = (sizeof(fwts_acpi_madt_local_x2apic_nmi));
>                         }
>                         break;
> @@ -403,8 +442,8 @@ static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
>                                 if (gic->flags & 0xfffffffc)
>                                         fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTGICFLags",
>                                                 "MADT GIC, flags, bits 2..31 are reserved "
> -                                               "and should be zero, but are set as: %lx.",
> -                                               (unsigned long int)gic->flags);
> +                                               "and should be zero, but are set as: %" PRIx32 ".",
> +                                               gic->flags);
>                                 skip = sizeof(fwts_acpi_madt_gic);
>                         }
>                         break;
> --
> 1.7.10.4
>
Acked-by: Keng-Yu Lin <kengyu@canonical.com>
Ivan Hu - Oct. 2, 2012, 2:11 a.m.
On 09/24/2012 03:03 AM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>   src/acpi/acpitables/acpitables.c |   97 ++++++++++++++++++++++++++------------
>   1 file changed, 68 insertions(+), 29 deletions(-)
>
> diff --git a/src/acpi/acpitables/acpitables.c b/src/acpi/acpitables/acpitables.c
> index 73c06a9..1aa3f44 100644
> --- a/src/acpi/acpitables/acpitables.c
> +++ b/src/acpi/acpitables/acpitables.c
> @@ -21,6 +21,7 @@
>   #include <dirent.h>
>   #include <ctype.h>
>   #include <unistd.h>
> +#include <inttypes.h>
>
>   #include "fwts.h"
>
> @@ -30,8 +31,9 @@ static void acpi_table_check_ecdt(fwts_framework *fw, fwts_acpi_table_info *tabl
>
>   	if ((ecdt->ec_control.address_space_id != 0) &&
>               (ecdt->ec_control.address_space_id != 1)) {
> -		fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECCtrlAddrSpaceID", "ECDT EC_CONTROL address space id = %hhu, "
> -				"should be 0 or 1 (System I/O Space or System Memory Space)",
> +		fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECCtrlAddrSpaceID",
> +				"ECDT EC_CONTROL address space id = %" PRIu8
> +				", should be 0 or 1 (System I/O Space or System Memory Space)",
>   				ecdt->ec_control.address_space_id);
>   		fwts_advice(fw, "The ECDT EC_CONTROL address space id was invalid, however the kernel ACPI EC driver "
>   				"will just assume it an I/O port address.  This will not affect "
> @@ -40,8 +42,9 @@ static void acpi_table_check_ecdt(fwts_framework *fw, fwts_acpi_table_info *tabl
>
>   	if ((ecdt->ec_data.address_space_id != 0) &&
>               (ecdt->ec_data.address_space_id != 1)) {
> -		fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECDataAddrSpaceID", "ECDT EC_CONTROL address space id = %hhu, "
> -				"should be 0 or 1 (System I/O Space or System Memory Space)",
> +		fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECDataAddrSpaceID",
> +				"ECDT EC_CONTROL address space id = %" PRIu8
> +				", should be 0 or 1 (System I/O Space or System Memory Space)",
>   				ecdt->ec_data.address_space_id);
>   		fwts_advice(fw, "The ECDT EC_DATA address space id was invalid, however the kernel ACPI EC driver "
>   				"will just assume it an I/O port address.  This will not affect "
> @@ -97,8 +100,11 @@ static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
>   						"If FIRMWARE_CTRL and X_FIRMWARE_CTRL are defined, then the kernel just uses the 64 bit version of "
>   						"the pointer.");
>   				if (((uint64_t)fadt->firmware_control != fadt->x_firmware_ctrl)) {
> -					fwts_failed(fw, LOG_LEVEL_MEDIUM, "FwCtrl32and64Differ", "FIRMWARE_CONTROL is 0x%x and differs from X_FIRMWARE_CONTROL 0x%llx",
> -						(unsigned int)fadt->firmware_control, (unsigned long long int)fadt->x_firmware_ctrl);
> +					fwts_failed(fw, LOG_LEVEL_MEDIUM, "FwCtrl32and64Differ",
> +						"FIRMWARE_CONTROL is 0x%" PRIx32 " and differs "
> +						"from X_FIRMWARE_CONTROL 0x%" PRIx64,
> +						fadt->firmware_control,
> +						fadt->x_firmware_ctrl);
>   					fwts_advice(fw, "One would expect the 32 bit FIRMWARE_CTRL and 64 bit X_FIRMWARE_CTRL "
>   							"pointers to point to the same FACS, however they don't which is clearly ambiguous and wrong. "
>   							"The kernel works around this by using the 64 bit X_FIRMWARE_CTRL pointer to the FACS. ");
> @@ -115,8 +121,10 @@ static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
>   			fwts_advice(fw, "An ACPI 2.0 FADT is being used however the 64 bit X_DSDT is null."
>   					"The kernel will fall back to using the 32 bit DSDT pointer instead.");
>   		} else if ((uint64_t)fadt->dsdt != fadt->x_dsdt) {
> -			fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADT32And64Mismatch", "FADT 32 bit DSDT (0x%x) does not point to same physical address as 64 bit X_DSDT (0x%llx).",
> -				(unsigned int)fadt->dsdt, (unsigned long long int)fadt->x_dsdt);
> +			fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADT32And64Mismatch",
> +				"FADT 32 bit DSDT (0x%" PRIx32 ") does not point to same "
> +				"physical address as 64 bit X_DSDT (0x%" PRIx64 ").",
> +				fadt->dsdt, fadt->x_dsdt);
>   			fwts_advice(fw, "One would expect the 32 bit DSDT and 64 bit X_DSDT "
>   					"pointers to point to the same DSDT, however they don't which is clearly ambiguous and wrong. "
>   					"The kernel works around this by using the 64 bit X_DSDT pointer to the DSDT. ");
> @@ -146,19 +154,22 @@ static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
>   	}
>
>   	if (fadt->pm_tmr_len != 4) {
> -		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadPMTMRLEN", "FADT PM_TMR_LEN is %hhu, should be 4.", fadt->pm_tmr_len);
> +		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadPMTMRLEN",
> +			"FADT PM_TMR_LEN is %" PRIu8 ", should be 4.", fadt->pm_tmr_len);
>   		fwts_advice(fw, "FADT field PM_TMR_LEN defines the number of bytes decoded by PM_TMR_BLK. "
>   				"This fields value must be 4. If it is not the correct size then the kernel "
>   				"will not request a region for the pm timer block. ");
>   	}
>   	if (fadt->gpe0_blk_len & 1) {
> -		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPEBLKLEN", "FADT GPE0_BLK_LEN is %hhu, should a multiple of 2.", (int)fadt->gpe0_blk_len);
> +		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPEBLKLEN", "FADT GPE0_BLK_LEN is %" PRIu8
> +			", should a multiple of 2.", fadt->gpe0_blk_len);
>   		fwts_advice(fw, "The FADT GPE_BLK_LEN should be a multiple of 2. Because it isn't, the ACPI driver will "
>   				"not map in the GPE0 region. This could mean that General Purpose Events will not "
>   				"function correctly (for example lid or ac-power events).");
>   	}
>   	if (fadt->gpe1_blk_len & 1) {
> -		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPE1BLKLEN", "FADT GPE1_BLK_LEN is %hhu, should a multiple of 2.", fadt->gpe1_blk_len);
> +		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPE1BLKLEN", "FADT GPE1_BLK_LEN is %" PRIu8
> +			", should a multiple of 2.", fadt->gpe1_blk_len);
>   		fwts_advice(fw, "The FADT GPE_BLK_LEN should be a multiple of 2. Because it isn't, the ACPI driver will "
>   				"not map in the GPE1 region. This could mean that General Purpose Events will not "
>   				"function correctly (for example lid or ac-power events).");
> @@ -173,13 +184,15 @@ static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
>   	 */
>   	/*
>   	if (fadt->p_lvl2_lat > 100) {
> -		fwts_warning(fw, "FADT P_LVL2_LAT is %hu, a value > 100 indicates a system not to support a C2 state.", fadt->p_lvl2_lat);
> +		fwts_warning(fw, "FADT P_LVL2_LAT is %" PRIi16 ", a value > 100 indicates a "
> +			"system not to support a C2 state.", fadt->p_lvl2_lat);

Shouldn't it be PRIu16?

Since it doesn't affect the result,

Acked-by: Ivan Hu <ivan.hu@canonical.com>



>   		fwts_advice(fw, "The FADT P_LVL2_LAT setting specifies the C2 latency in microseconds. The ACPI specification "
>   				"states that a value > 100 indicates that C2 is not supported and hence the "
>   				"ACPI processor idle routine will not use C2 power states.");
>   	}

Patch

diff --git a/src/acpi/acpitables/acpitables.c b/src/acpi/acpitables/acpitables.c
index 73c06a9..1aa3f44 100644
--- a/src/acpi/acpitables/acpitables.c
+++ b/src/acpi/acpitables/acpitables.c
@@ -21,6 +21,7 @@ 
 #include <dirent.h>
 #include <ctype.h>
 #include <unistd.h>
+#include <inttypes.h>
 
 #include "fwts.h"
 
@@ -30,8 +31,9 @@  static void acpi_table_check_ecdt(fwts_framework *fw, fwts_acpi_table_info *tabl
 
 	if ((ecdt->ec_control.address_space_id != 0) &&
             (ecdt->ec_control.address_space_id != 1)) {
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECCtrlAddrSpaceID", "ECDT EC_CONTROL address space id = %hhu, "
-				"should be 0 or 1 (System I/O Space or System Memory Space)",
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECCtrlAddrSpaceID",
+				"ECDT EC_CONTROL address space id = %" PRIu8
+				", should be 0 or 1 (System I/O Space or System Memory Space)",
 				ecdt->ec_control.address_space_id);
 		fwts_advice(fw, "The ECDT EC_CONTROL address space id was invalid, however the kernel ACPI EC driver "
 				"will just assume it an I/O port address.  This will not affect "
@@ -40,8 +42,9 @@  static void acpi_table_check_ecdt(fwts_framework *fw, fwts_acpi_table_info *tabl
 
 	if ((ecdt->ec_data.address_space_id != 0) &&
             (ecdt->ec_data.address_space_id != 1)) {
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECDataAddrSpaceID", "ECDT EC_CONTROL address space id = %hhu, "
-				"should be 0 or 1 (System I/O Space or System Memory Space)",
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "ECDTECDataAddrSpaceID",
+				"ECDT EC_CONTROL address space id = %" PRIu8
+				", should be 0 or 1 (System I/O Space or System Memory Space)",
 				ecdt->ec_data.address_space_id);
 		fwts_advice(fw, "The ECDT EC_DATA address space id was invalid, however the kernel ACPI EC driver "
 				"will just assume it an I/O port address.  This will not affect "
@@ -97,8 +100,11 @@  static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
 						"If FIRMWARE_CTRL and X_FIRMWARE_CTRL are defined, then the kernel just uses the 64 bit version of "
 						"the pointer.");
 				if (((uint64_t)fadt->firmware_control != fadt->x_firmware_ctrl)) {
-					fwts_failed(fw, LOG_LEVEL_MEDIUM, "FwCtrl32and64Differ", "FIRMWARE_CONTROL is 0x%x and differs from X_FIRMWARE_CONTROL 0x%llx",
-						(unsigned int)fadt->firmware_control, (unsigned long long int)fadt->x_firmware_ctrl);
+					fwts_failed(fw, LOG_LEVEL_MEDIUM, "FwCtrl32and64Differ",
+						"FIRMWARE_CONTROL is 0x%" PRIx32 " and differs "
+						"from X_FIRMWARE_CONTROL 0x%" PRIx64,
+						fadt->firmware_control,
+						fadt->x_firmware_ctrl);
 					fwts_advice(fw, "One would expect the 32 bit FIRMWARE_CTRL and 64 bit X_FIRMWARE_CTRL "
 							"pointers to point to the same FACS, however they don't which is clearly ambiguous and wrong. "
 							"The kernel works around this by using the 64 bit X_FIRMWARE_CTRL pointer to the FACS. ");
@@ -115,8 +121,10 @@  static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
 			fwts_advice(fw, "An ACPI 2.0 FADT is being used however the 64 bit X_DSDT is null."
 					"The kernel will fall back to using the 32 bit DSDT pointer instead.");
 		} else if ((uint64_t)fadt->dsdt != fadt->x_dsdt) {
-			fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADT32And64Mismatch", "FADT 32 bit DSDT (0x%x) does not point to same physical address as 64 bit X_DSDT (0x%llx).",
-				(unsigned int)fadt->dsdt, (unsigned long long int)fadt->x_dsdt);
+			fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADT32And64Mismatch",
+				"FADT 32 bit DSDT (0x%" PRIx32 ") does not point to same "
+				"physical address as 64 bit X_DSDT (0x%" PRIx64 ").",
+				fadt->dsdt, fadt->x_dsdt);
 			fwts_advice(fw, "One would expect the 32 bit DSDT and 64 bit X_DSDT "
 					"pointers to point to the same DSDT, however they don't which is clearly ambiguous and wrong. "
 					"The kernel works around this by using the 64 bit X_DSDT pointer to the DSDT. ");
@@ -146,19 +154,22 @@  static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
 	}
 
 	if (fadt->pm_tmr_len != 4) {
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadPMTMRLEN", "FADT PM_TMR_LEN is %hhu, should be 4.", fadt->pm_tmr_len);
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadPMTMRLEN",
+			"FADT PM_TMR_LEN is %" PRIu8 ", should be 4.", fadt->pm_tmr_len);
 		fwts_advice(fw, "FADT field PM_TMR_LEN defines the number of bytes decoded by PM_TMR_BLK. "
 				"This fields value must be 4. If it is not the correct size then the kernel "
 				"will not request a region for the pm timer block. ");
 	}
 	if (fadt->gpe0_blk_len & 1) {
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPEBLKLEN", "FADT GPE0_BLK_LEN is %hhu, should a multiple of 2.", (int)fadt->gpe0_blk_len);
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPEBLKLEN", "FADT GPE0_BLK_LEN is %" PRIu8
+			", should a multiple of 2.", fadt->gpe0_blk_len);
 		fwts_advice(fw, "The FADT GPE_BLK_LEN should be a multiple of 2. Because it isn't, the ACPI driver will "
 				"not map in the GPE0 region. This could mean that General Purpose Events will not "
 				"function correctly (for example lid or ac-power events).");
 	}
 	if (fadt->gpe1_blk_len & 1) {
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPE1BLKLEN", "FADT GPE1_BLK_LEN is %hhu, should a multiple of 2.", fadt->gpe1_blk_len);
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadGPE1BLKLEN", "FADT GPE1_BLK_LEN is %" PRIu8
+			", should a multiple of 2.", fadt->gpe1_blk_len);
 		fwts_advice(fw, "The FADT GPE_BLK_LEN should be a multiple of 2. Because it isn't, the ACPI driver will "
 				"not map in the GPE1 region. This could mean that General Purpose Events will not "
 				"function correctly (for example lid or ac-power events).");
@@ -173,13 +184,15 @@  static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
 	 */
 	/*
 	if (fadt->p_lvl2_lat > 100) {
-		fwts_warning(fw, "FADT P_LVL2_LAT is %hu, a value > 100 indicates a system not to support a C2 state.", fadt->p_lvl2_lat);
+		fwts_warning(fw, "FADT P_LVL2_LAT is %" PRIi16 ", a value > 100 indicates a "
+			"system not to support a C2 state.", fadt->p_lvl2_lat);
 		fwts_advice(fw, "The FADT P_LVL2_LAT setting specifies the C2 latency in microseconds. The ACPI specification "
 				"states that a value > 100 indicates that C2 is not supported and hence the "
 				"ACPI processor idle routine will not use C2 power states.");
 	}
 	if (fadt->p_lvl3_lat > 1000) {
-		fwts_warning(fw, "FADT P_LVL3_LAT is %hu, a value > 1000 indicates a system not to support a C3 state.", fadt->p_lvl3_lat);
+		fwts_warning(fw, "FADT P_LVL3_LAT is %" PRIu16 ", a value > 1000 indicates a "
+			"system not to support a C3 state.", fadt->p_lvl3_lat);
 		fwts_advice(fw, "The FADT P_LVL2_LAT setting specifies the C3 latency in microseconds. The ACPI specification "
 				"states that a value > 1000 indicates that C3 is not supported and hence the "
 				"ACPI processor idle routine will not use C3 power states.");
@@ -199,7 +212,7 @@  static void acpi_table_check_fadt(fwts_framework *fw, fwts_acpi_table_info *tabl
 		    (fadt->reset_reg.address_space_id != 1) &&
 		    (fadt->reset_reg.address_space_id != 2)) {
 			fwts_failed(fw, LOG_LEVEL_MEDIUM, "FADTBadRESETREG",
-				"FADT RESET_REG address space ID was %hhu, must be System Memory space (0), "
+				"FADT RESET_REG address space ID was %" PRIu8 ", must be System Memory space (0), "
 				"System I/O space (1), or PCI configuration space (2).",
 				fadt->reset_reg.address_space_id);
 			fwts_advice(fw, "If the FADT RESET_REG address space ID is not set correctly then ACPI writes "
@@ -227,7 +240,8 @@  static void acpi_table_check_rsdp(fwts_framework *fw, fwts_acpi_table_info *tabl
 	}
 
 	if (rsdp->revision > 2) {
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "RSDPBadRevisionId", "RSDP: revision is %hhu, expected value less than 2.", rsdp->revision);
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "RSDPBadRevisionId", "RSDP: revision is %" PRIu8
+			", expected value less than 2.", rsdp->revision);
 		fwts_advice(fw, "A RSDP revision number greater than 2 probably won't cause any system problems.");
 	}
 }
@@ -254,13 +268,17 @@  static void acpi_table_check_sbst(fwts_framework *fw, fwts_acpi_table_info *tabl
 	fwts_acpi_table_sbst *sbst = (fwts_acpi_table_sbst*)table->data;
 
 	if (sbst->critical_energy_level > sbst->low_energy_level) {
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "SBSTEnergyLevel1", "SBST Critical Energy Level (%u) is greater than the Low Energy Level (%u).",
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "SBSTEnergyLevel1",
+			"SBST Critical Energy Level (%" PRIu32 ") "
+			"is greater than the Low Energy Level (%" PRIu32 ").",
 			sbst->critical_energy_level, sbst->low_energy_level);
 		fwts_advice(fw, "This could affect system behaviour based on incorrect smart battery information. This should be fixed.");
 	}
 
 	if (sbst->low_energy_level > sbst->warning_energy_level) {
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "SBSTEnergeyLevel2", "SBST Low Energy Energy Level (%u) is greater than the Warning Energy Level (%u).",
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "SBSTEnergeyLevel2",
+			"SBST Low Energy Energy Level (%" PRIu32 ") "
+			"is greater than the Warning Energy Level (%" PRIu32 ").",
 			sbst->low_energy_level, sbst->warning_energy_level);
 		fwts_advice(fw, "This could affect system behaviour based on incorrect smart battery information. This should be fixed.");
 	}
@@ -296,8 +314,10 @@  static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
 	int i = 0;
 
 	if (madt->flags & 0xfffffffe)
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTFlagsNonZero", "MADT flags field, bits 1..31 are reserved and should be zero, but are set as: %lx.\n",
-			(unsigned long int)madt->flags);
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTFlagsNonZero",
+			"MADT flags field, bits 1..31 are reserved and "
+			"should be zero, but are set as: %" PRIx32 ".\n",
+			madt->flags);
 
 	data += sizeof(fwts_acpi_table_madt);
 	length -= sizeof(fwts_acpi_table_madt);
@@ -314,7 +334,10 @@  static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
 		case 0: {
 				fwts_acpi_madt_processor_local_apic *lapic = (fwts_acpi_madt_processor_local_apic *)data;
 				if (lapic->flags & 0xfffffffe)
-					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTAPICFlagsNonZero", "MADT Local APIC flags field, bits 1..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)lapic->flags);
+					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTAPICFlagsNonZero",
+						"MADT Local APIC flags field, bits 1..31 are reserved and "
+						"should be zero, but are set as: %" PRIx32 ".",
+						lapic->flags);
 				skip = sizeof(fwts_acpi_madt_processor_local_apic);
 			}
 			break;
@@ -334,21 +357,30 @@  static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
 				if (int_override->bus != 0)
 					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTIRQSrcISA", "MADT Interrupt Source Override Bus should be 0 for ISA bus.");
 				if (int_override->flags & 0xfffffff0)
-					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTIRQSrcFlags", "MADT Interrupt Source Override flags, bits 4..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)int_override->flags);
+					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTIRQSrcFlags",
+						"MADT Interrupt Source Override flags, bits 4..31 are reserved "
+						"and should be zero, but are set as: %" PRIx32 ".",
+						int_override->flags);
 				skip = sizeof(fwts_acpi_madt_interrupt_override);
 			}
 			break;
 		case 3: {
 				fwts_acpi_madt_nmi *nmi = (fwts_acpi_madt_nmi*)data;
 				if (nmi->flags & 0xfffffff0)
-					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTNMISrcFlags", "MADT Non-Maskable Interrupt Source, flags, bits 4..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)nmi->flags);
+					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTNMISrcFlags",
+						"MADT Non-Maskable Interrupt Source, flags, bits 4..31 are reserved "
+						"and should be zero, but are set as: %" PRIx32 ".",
+						nmi->flags);
 				skip = sizeof(fwts_acpi_madt_nmi);
 			}
 			break;
 		case 4: {
 				fwts_acpi_madt_local_apic_nmi *nmi = (fwts_acpi_madt_local_apic_nmi*)data;
 				if (nmi->flags & 0xfffffff0)
-					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTLAPICNMIFlags", "MADT Local APIC NMI flags, bits 4..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)nmi->flags);
+					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTLAPICNMIFlags",
+						"MADT Local APIC NMI flags, bits 4..31 are reserved "
+						"and should be zero, but are set as: %" PRIx32 ".",
+						nmi->flags);
 				skip = sizeof(fwts_acpi_madt_local_apic_nmi);
 			}
 			break;
@@ -373,16 +405,21 @@  static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
 				fwts_acpi_madt_platform_int_source *src = (fwts_acpi_madt_platform_int_source*)data;
 				if (src->flags & 0xfffffff0)
 					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTPlatIRQSrcFlags",
-						"MADT Platform Interrupt Source, flags, bits 4..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)src->flags);
+						"MADT Platform Interrupt Source, flags, bits 4..31 are "
+						"reserved and should be zero, but are set as: %" PRIx32 ".",
+						src->flags);
 				if (src->type > 3)
 					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTPlatIRQType",
-						"MADT Platform Interrupt Source, type field is %hhu, should be 1..3.", src->type);
+						"MADT Platform Interrupt Source, type field is %" PRIu8
+						", should be 1..3.", src->type);
 				if (src->io_sapic_vector == 0)
 					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTPlatIRQIOSAPICVector",
 						"MADT Platform Interrupt Source, IO SAPIC Vector is zero, appears not to be defined.");
 				if (src->pis_flags & 0xfffffffe)
 					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTPlatIRQSrcFlagsNonZero",
-						"MADT Platform Interrupt Source, Platform Interrupt Source flag bits 1..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)src->pis_flags);
+						"MADT Platform Interrupt Source, Platform Interrupt Source flag "
+						"bits 1..31 are reserved and should be zero, but are "
+						"set as: %" PRIx32 ".", src->pis_flags);
 				skip = (sizeof(fwts_acpi_madt_platform_int_source));
 			}
 			break;
@@ -393,7 +430,9 @@  static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
 				fwts_acpi_madt_local_x2apic_nmi *nmi = (fwts_acpi_madt_local_x2apic_nmi*)data;
 				if (nmi->flags & 0xfffffff0)
 					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTLAPICX2APICNMIFlags",
-						"MADT Local x2APIC NMI, flags, bits 4..31 are reserved and should be zero, but are set as: %lx.", (unsigned long int)nmi->flags);
+						"MADT Local x2APIC NMI, flags, bits 4..31 are reserved and "
+						"should be zero, but are set as: %" PRIx32 ".",
+						nmi->flags);
 				skip = (sizeof(fwts_acpi_madt_local_x2apic_nmi));
 			}
 			break;
@@ -403,8 +442,8 @@  static void acpi_table_check_madt(fwts_framework *fw, fwts_acpi_table_info *tabl
 				if (gic->flags & 0xfffffffc)
 					fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTGICFLags",
 						"MADT GIC, flags, bits 2..31 are reserved "
-						"and should be zero, but are set as: %lx.",
-						(unsigned long int)gic->flags);
+						"and should be zero, but are set as: %" PRIx32 ".",
+						gic->flags);
 				skip = sizeof(fwts_acpi_madt_gic);
 			}
 			break;