[PATCH 14/18] dmi: dmi_decode: print format using inttypes
IvanHu
ivan.hu at canonical.com
Tue Oct 2 02:40:32 UTC 2012
On 09/24/2012 03:03 AM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
> src/dmi/dmi_decode/dmi_decode.c | 181 ++++++++++++++++++++++-----------------
> 1 file changed, 104 insertions(+), 77 deletions(-)
>
> diff --git a/src/dmi/dmi_decode/dmi_decode.c b/src/dmi/dmi_decode/dmi_decode.c
> index a9b46d3..f502713 100644
> --- a/src/dmi/dmi_decode/dmi_decode.c
> +++ b/src/dmi/dmi_decode/dmi_decode.c
> @@ -20,6 +20,7 @@
> #include <stdbool.h>
> #include <string.h>
> #include <stdlib.h>
> +#include <inttypes.h>
>
> #include "fwts.h"
>
> @@ -212,7 +213,9 @@ static uint16_t dmi_remap_version(fwts_framework *fw, uint16_t old)
> if (old == dmi_versions[i].old) {
> uint16_t new = dmi_versions[i].new;
> fwts_warning(fw,
> - "Detected a buggy DMI version number %u.%u, remapping to %u.%u",
> + "Detected a buggy DMI version number "
> + "%" PRIu16 ".%" PRIu16 "remapping to "
> + "%" PRIu16 ".%" PRIu16,
> VERSION_MAJOR(old), VERSION_MINOR(old),
> VERSION_MAJOR(new), VERSION_MINOR(new));
> return new;
> @@ -253,8 +256,10 @@ static void dmi_min_max_uint8_check(fwts_framework *fw,
> if ((val < min) || (val > max)) {
> fwts_failed(fw, LOG_LEVEL_HIGH,
> DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x (range allowed 0x%2.2x..0x%2.2x) "
> - "while accessing entry '%s' @ 0x%8.8x, field '%s', offset 0x%2.2x",
> + "Out of range value 0x%2.2" PRIx8
> + " (range allowed 0x%2.2" PRIx8 "..0x%2.2" PRIx8 ") "
> + "while accessing entry '%s' @ 0x%8.8" PRIx32
> + ", field '%s', offset 0x%2.2" PRIx8,
> val, min, max, table, addr, field, offset);
> dmi_out_of_range_advice(fw, hdr->type, offset);
> }
> @@ -275,8 +280,10 @@ static void dmi_min_max_mask_uint8_check(fwts_framework *fw,
>
> if ((val < min) || (val > max)) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x (range allowed 0x%2.2x..0x%2.2x) "
> - "while accessing entry '%s' @ 0x%8.8x, field '%s', offset 0x%2.2x",
> + "Out of range value 0x%2.2" PRIx8
> + " (range allowed 0x%2.2" PRIx8 "..0x%2.2" PRIx8 ") "
> + "while accessing entry '%s' @ 0x%8.8" PRIx32
> + ", field '%s', offset 0x%2.2" PRIx8,
> val, min, max, table, addr, field, offset);
> dmi_out_of_range_advice(fw, hdr->type, offset);
> }
> @@ -306,8 +313,9 @@ static void dmi_str_check_index(fwts_framework *fw,
> if (*data == '\0') {
> /* This entry is clearly broken so flag it as a corrupt entry */
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_STRING_INDEX_OUT_OF_RANGE,
> - "Out of range string index 0x%2.2x while accessing entry '%s' "
> - "@ 0x%8.8x, field '%s', offset 0x%2.2x",
> + "Out of range string index 0x%2.2" PRIx8
> + " while accessing entry '%s' "
> + "@ 0x%8.8" PRIx32 ", field '%s', offset 0x%2.2" PRIx8,
> index, table, addr, field, offset);
> if (dmi_used_by_kernel(hdr->type, offset))
> fwts_advice(fw,
> @@ -345,8 +353,10 @@ static void dmi_str_check_index(fwts_framework *fw,
> if (failed != -1) {
> if (dmi_used_by_kernel(hdr->type, offset)) {
> fwts_failed(fw, LOG_LEVEL_MEDIUM, dmi_patterns[j].label,
> - "String index 0x%2.2x in table entry '%s' @ 0x%8.8x, field '%s', "
> - "offset 0x%2.2x has a default value '%s' and probably has "
> + "String index 0x%2.2" PRIx8
> + " in table entry '%s' @ 0x%8.8" PRIx32
> + ", field '%s', offset 0x%2.2" PRIx8
> + " has a default value '%s' and probably has "
> "not been updated by the BIOS vendor.",
> index, table, addr, field, offset, data);
> fwts_advice(fw,
> @@ -361,8 +371,10 @@ static void dmi_str_check_index(fwts_framework *fw,
> } else {
> /* This string is broken, but we don't care about it too much */
> fwts_failed(fw, LOG_LEVEL_LOW, dmi_patterns[j].label,
> - "String index 0x%2.2x in table entry '%s' @ 0x%8.8x, field '%s', "
> - "offset 0x%2.2x has a default value '%s' and probably has "
> + "String index 0x%2.2" PRIx8
> + " in table entry '%s' @ 0x%8.8" PRIx32
> + ", field '%s', offset 0x%2.2" PRIx8
> + " has a default value '%s' and probably has "
> "not been updated by the BIOS vendor.",
> index, table, addr, field, offset, data);
> fwts_advice(fw,
> @@ -404,8 +416,9 @@ static void dmi_uuid_check(fwts_framework *fw,
> for (i=0; uuid_patterns[i] != NULL; i++) {
> if (strcmp(guid_str, uuid_patterns[i]) == 0) {
> fwts_failed(fw, LOG_LEVEL_LOW, DMI_BAD_UUID,
> - "UUID in table entry '%s' @ 0x%8.8x, field '%s', "
> - "offset 0x%2.2x has a default value '%s' and probably has "
> + "UUID in table entry '%s' @ 0x%8.8" PRIx32
> + " field '%s', offset 0x%2.2" PRIx8
> + " has a default value '%s' and probably has "
> "not been updated by the BIOS vendor.",
> table, addr, field, offset, guid_str);
> fwts_advice(fw,
> @@ -501,7 +514,7 @@ static void dmi_decode_entry(fwts_framework *fw,
> (sizeof(fwts_acpi_pm_profile_type) / sizeof(fwts_chassis_type_map))) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_INVALID_HARDWARE_ENTRY,
> "Incorrect Chassis Type "
> - "ACPI FACP reports 0x%x",
> + "ACPI FACP reports 0x%" PRIx8,
> fadt->preferred_pm_profile);
> break;
> }
> @@ -509,7 +522,7 @@ static void dmi_decode_entry(fwts_framework *fw,
> (sizeof(fwts_dmi_chassis_type) / sizeof(fwts_chassis_type_map))) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_INVALID_HARDWARE_ENTRY,
> "Incorrect Chassis Type "
> - "SMBIOS Type 3 reports 0x%x",
> + "SMBIOS Type 3 reports 0x%" PRIx8,
> data[5]);
> fwts_advice(fw,
> "The Chassis Type in the ACPI FADT is out of range "
> @@ -532,8 +545,8 @@ static void dmi_decode_entry(fwts_framework *fw,
> fwts_dmi_chassis_type[data[5]].mapped)) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_INVALID_HARDWARE_ENTRY,
> "Unmatched Chassis Type: "
> - "SMBIOS Type 3 reports 0x%x '%s' "
> - "ACPI FACP reports 0x%x '%s'",
> + "SMBIOS Type 3 reports 0x%" PRIx8 " '%s' "
> + "ACPI FACP reports 0x%" PRIx8 " '%s'",
> data[5],
> fwts_dmi_chassis_type[data[5]].name,
> fadt->preferred_pm_profile,
> @@ -543,8 +556,8 @@ static void dmi_decode_entry(fwts_framework *fw,
> */
> fwts_advice(fw,
> "The SMBIOS System Enclosure/Chassis type is defined as "
> - "0x%x '%s' where as the ACPI FACP reports the preferred "
> - "power management profile is 0x%x '%s' so we possibly "
> + "0x%" PRIx8 " '%s' where as the ACPI FACP reports the preferred "
> + "power management profile is 0x%" PRIx8 " '%s' so we possibly "
> "have conflicting definitions of the machine's PM profile "
> "for the type of machine. "
> "See Table 16 of section 4.5.1 of the SMBIOS specification "
> @@ -577,18 +590,21 @@ static void dmi_decode_entry(fwts_framework *fw,
> if (ptr[i * len] & 0x80) {
> if (val > 0x42)
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> - "(range allowed 0x00..0x42) "
> - "while accessing entry '%s' @ 0x%8.8x, field "
> - "'SMBIOS Structure Type %d', offset 0x%2.2x",
> + "Out of range value 0x%2.2" PRIx8
> + " (range allowed 0x00..0x42) "
> + "while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field "
> + "'SMBIOS Structure Type %d', "
> + "offset 0x%2.2x",
> val, table, addr, i, 0x15 + (i*len));
> } else {
> if ((val < 0x1) || (val > 0xd))
> snprintf(tmp, sizeof(tmp), "Base Board Type %d", i);
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> - "(range allowed 0x00..0x42) "
> - "while accessing entry '%s' @ 0x%8.8x, field "
> + "Out of range value 0x%2.2" PRIx8
> + " (range allowed 0x00..0x42) "
> + "while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field "
> "'Base Board Type %d', offset 0x%2.2x",
> val, table, addr, i, 0x15 + (i*len));
> }
> @@ -638,10 +654,10 @@ static void dmi_decode_entry(fwts_framework *fw,
> dmi_str_check(fw, table, addr, "Socket Designation", hdr, 0x4);
> if (((GET_UINT16(data + 0x05) >> 5) & 0x0003) == 0x2)
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value %x4.4x "
> + "Out of range value %x4.4" PRIx16 " "
> "bits 5..6 set to illegal value 0x2, only allowed"
> - "0x0, 0x1, 0x3 while accessing entry '%s' @ 0x%8.8x, "
> - "field '%s', offset 0x%2.2x",
> + "0x0, 0x1, 0x3 while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', offset 0x%2.2x",
> GET_UINT16(data + 0x05),
> table, addr, "Cache Location", 0x5);
> if (hdr->length < 0x13)
> @@ -660,29 +676,29 @@ static void dmi_decode_entry(fwts_framework *fw,
> (data[0x5] == 0xff) ||
> ((data[0x5] >= 0xa0) && (data[0x5] <= 0xa4))))
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2" PRIx8 " "
> "(range allowed 0x00..0x22, 0xa0..0xa4, 0xff) "
> - "while accessing entry '%s' @ 0x%8.8x, "
> - "field '%s', offset 0x%2.2x",
> + "while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', offset 0x%2.2x",
> data[0x5], table, addr, "Internal Connector Type", 0x5);
> dmi_str_check(fw, table, addr, "External Reference Designator", hdr, 0x6);
> if (!((data[0x7] <= 0x22) ||
> (data[0x7] == 0xff) ||
> ((data[0x7] >= 0xa0) && (data[0x7] <= 0xa4))))
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2" PRIx8 " "
> "(range allowed 0x00..0x22, 0xa0..0xa4, 0xff) "
> - "while accessing entry '%s' @ 0x%8.8x, "
> - "field '%s', offset 0x%2.2x",
> + "while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', offset 0x%2.2x",
> data[0x7], table, addr, "Internal Connector Type", 0x7);
>
> if (!((data[0x8] <= 0x21) ||
> (data[0x8] == 0xff) ||
> ((data[0x8] >= 0xa0) && (data[0x8] <= 0xa1))))
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2" PRIx8 " "
> "(range allowed 0x00..0x21, 0xa0..0xa1, 0xff) "
> - "while accessing entry '%s' @ 0x%8.8x, "
> + "while accessing entry '%s' @ 0x%8.8" PRIx32 ", "
> "field '%s', offset 0x%2.2x",
> data[0x8], table, addr, "Port Type", 0x8);
> break;
> @@ -695,9 +711,9 @@ static void dmi_decode_entry(fwts_framework *fw,
> if (!(((data[0x5] >= 0x01) && (data[0x5] <= 0x13)) ||
> ((data[0x5] >= 0xa0) && (data[0x5] <= 0xb6))))
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2x" PRIx8 " "
> "(range allowed 0x01..0x08, 0xa0..0xa2) "
> - "while accessing entry '%s' @ 0x%8.8x, "
> + "while accessing entry '%s' @ 0x%8.8" PRIx32 ", "
> "field '%s', offset 0x%2.2x",
> data[0x5], table, addr, "Slot Type", 0x5);
> dmi_min_max_uint8_check(fw, table, addr, "Slot Data Bus Width", hdr, 0x6, 0x1, 0xe);
> @@ -762,9 +778,10 @@ static void dmi_decode_entry(fwts_framework *fw,
> if (!(((val >= 0x00) && (val <= 0x04)) ||
> ((val >= 0x80) && (val <= 0xff)))) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x (range allowed 0x00..0x01, "
> - "0x80..0xff) while accessing entry '%s' @ 0x%8.8x, "
> - "field '%s', offset 0x%2.2x",
> + "Out of range value 0x%2.2" PRIx8 " "
> + "(range allowed 0x00..0x01, "
> + "0x80..0xff) while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', offset 0x%2.2x",
> val, table, addr, "Access Method", 0x0a);
> }
> if (hdr->length < 0x17)
> @@ -773,9 +790,10 @@ static void dmi_decode_entry(fwts_framework *fw,
> if (!(((val >= 0x00) && (val <= 0x01)) ||
> ((val >= 0x80) && (val <= 0xff)))) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x (range allowed 0x00..0x01, "
> - "0x80..0xff) while accessing entry '%s' @ 0x%8.8x, "
> - "field '%s', offset 0x%2.2x",
> + "Out of range value 0x%2.2" PRIx8 " "
> + "(range allowed 0x00..0x01, "
> + "0x80..0xff) while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', offset 0x%2.2x",
> val, table, addr, "Log Header Format", 0x14);
> }
> if (hdr->length < 0x17 + data[0x15] * data[0x16])
> @@ -790,19 +808,19 @@ static void dmi_decode_entry(fwts_framework *fw,
> ((val >= 0x10) && (val <= 0x17)) ||
> ((val >= 0x80) && (val <= 0xff)))) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2" PRIx8 " "
> "(range allowed 0x01..0x0e, 0x10..0x17, "
> - "0x80..0xff) while accessing entry '%s' @ 0x%8.8x, "
> - "field '%s', item %d",
> + "0x80..0xff) while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', item %d",
> val, table, addr, "Log Descriptor Type", i);
> }
> val = ptr[j + 1];
> if ((val > 0x06) && (val < 0x80)) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2" PRIx8 " "
> "(range allowed 0x00..0x06, 0x80..0xff) "
> - "while accessing entry '%s' @ 0x%8.8x, "
> - "field '%s', item %d",
> + "while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', item %d",
> val, table, addr, "Log Descriptor Format", i);
> }
> }
> @@ -816,9 +834,10 @@ static void dmi_decode_entry(fwts_framework *fw,
> if (!(((data[0x4] >= 0x01) && (data[0x4] <= 0x0a)) ||
> ((data[0x4] >= 0xa0) && (data[0x4] <= 0xa3))))
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2" PRIx8 " "
> "(range allowed 0x01..0x0a, 0xa0..0xa3) "
> - "while accessing entry '%s' @ 0x%8.8x, field '%s', offset 0x%2.2x",
> + "while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', offset 0x%2.2x",
> data[0x4], table, addr, "Location", 0x4);
> dmi_min_max_uint8_check(fw, table, addr, "Use", hdr, 0x5, 0x1, 0x7);
> dmi_min_max_uint8_check(fw, table, addr, "Error Corrrection Type", hdr, 0x6, 0x1, 0x7);
> @@ -860,14 +879,14 @@ static void dmi_decode_entry(fwts_framework *fw,
> if (start == end)
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_ILLEGAL_MAPPED_ADDR_RANGE,
> "Extended Start and End addresses are identical "
> - "while accessing entry '%s' @ 0x%8.8x, "
> + "while accessing entry '%s' @ 0x%8.8" PRIx32 ", "
> "fields 'Extended Starting Address' and 'Extended Ending Address'",
> table, addr);
> } else {
> if (GET_UINT32(data + 0x08) - GET_UINT32(data + 0x04) + 1 == 0)
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_ILLEGAL_MAPPED_ADDR_RANGE,
> "Illegal zero mapped address range "
> - "for entry '%s' @ 0x%8.8x", table, addr);
> + "for entry '%s' @ 0x%8.8" PRIx32, table, addr);
> }
> break;
>
> @@ -882,19 +901,20 @@ static void dmi_decode_entry(fwts_framework *fw,
> if (start == end)
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_ILLEGAL_MAPPED_ADDR_RANGE,
> "Extended Start and End addresses are identical "
> - "while accessing entry '%s' @ 0x%8.8x, "
> + "while accessing entry '%s' @ 0x%8.8" PRIx32 ", "
> "fields 'Extended Starting Address' and 'Extended Ending Address'",
> table, addr);
> } else {
> if (GET_UINT32(data + 0x08) - GET_UINT32(data + 0x04) + 1 == 0)
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_ILLEGAL_MAPPED_ADDR_RANGE,
> "Illegal zero mapped address range "
> - "for entry '%s' @ 0x%8.8x", table, addr);
> + "for entry '%s' @ 0x%8.8" PRIx32, table, addr);
> }
> if (data[0x10] == 0)
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_ILLEGAL_MAPPED_ADDR_RANGE,
> - "Illegal row position %2.2x, "
> - "while accessing entry '%s' @ 0x%8.8x, field '%s', offset 0x%2.2x",
> + "Illegal row position %2.2" PRIx8 ", "
> + "while accessing entry '%s' @ 0x%8.8" PRIx32
> + ", field '%s', offset 0x%2.2x",
> data[0x10], table, addr, "Partial Row Position", 0x10);
> break;
>
> @@ -906,7 +926,7 @@ static void dmi_decode_entry(fwts_framework *fw,
> if (!(((data[0x5] >= 0x01) && (data[0x5] <= 0x08)) ||
> ((data[0x5] >= 0xa0) && (data[0x5] <= 0xa2)))) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2" PRIx8 " "
> "(range allowed 0x01..0x08, 0xa0..0xa2) "
> "while accessing '%s', field '%s', offset 0x%2.2x",
> data[0x5], table, "Interface", 0x5);
> @@ -979,9 +999,10 @@ static void dmi_decode_entry(fwts_framework *fw,
> if (!(((val >= 0x01) && (val <= 0x09)) ||
> ((val >= 0x10) && (val <= 0x11))))
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2" PRIx8 " "
> "(range allowed 0x01..0x09, 0x10..0x11) "
> - "while accessing entry '%s' @ 0x%8.8x, field '%s', "
> + "while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', "
> "offset 0x%2.2x, mask 0x%2.2x",
> data[0x6], table, addr, "Device Type", 0x6, 0x1f);
> dmi_min_max_mask_uint8_check(fw, table, addr, "Status (bits 5..7)", hdr, 0x6, 0x1, 0x6, 5, 0x7);
> @@ -1029,9 +1050,10 @@ static void dmi_decode_entry(fwts_framework *fw,
> break;
> if ((data[0xa] > 0x8) && (data[0xa] < 128))
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2" PRIx8 " "
> "(range allowed 0x00..0x08, 0x80..0xff) "
> - "while accessing entry '%s' @ 0x%8.8x, field '%s', offset 0x%2.2x",
> + "while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', offset 0x%2.2x",
> data[0xa], table, addr, "Boot Status", 0xa);
> break;
>
> @@ -1112,9 +1134,10 @@ static void dmi_decode_entry(fwts_framework *fw,
> if (!((data[0x04] >= 0x02 && data[0x04] <= 0x08) ||
> (data[0x04] == 0xF0)))
> fwts_failed(fw, LOG_LEVEL_MEDIUM, DMI_MGMT_CTRL_HOST_TYPE,
> - "Out of range value 0x%2.2x "
> + "Out of range value 0x%2.2" PRIx8 " "
> "(range allowed 0x02..0x08, 0xf0) "
> - "while accessing entry '%s' @ 0x%8.8x, field '%s', offset 0x%2.2x",
> + "while accessing entry '%s' @ "
> + "0x%8.8" PRIx32 ", field '%s', offset 0x%2.2x",
> data[0x4], table, addr, "Reference Designation", 0x4);
> break;
>
> @@ -1125,15 +1148,15 @@ static void dmi_decode_entry(fwts_framework *fw,
> table = "End of Table (Type 127)";
> break;
> default:
> - snprintf(tmp, sizeof(tmp), "Unknown (Type %d)", hdr->type);
> + snprintf(tmp, sizeof(tmp), "Unknown (Type %" PRId8 ")", hdr->type);
> table = tmp;
> break;
> }
> if (fw->minor_tests.failed == failed_count)
> - fwts_passed(fw, "Entry @ 0x%8.8x '%s'", addr, table);
> + fwts_passed(fw, "Entry @ 0x%8.8" PRIx32 " '%s'", addr, table);
> else if (!advice_given && hdr->type <= 42)
> fwts_advice(fw,
> - "It may be worth checking against section 7.%d of the "
> + "It may be worth checking against section 7.%" PRId8 " of the "
> "System Management BIOS (SMBIOS) Reference Specification "
> "(see http://www.dmtf.org/standards/smbios).", hdr->type+1);
> }
> @@ -1142,8 +1165,10 @@ static int dmi_version_check(fwts_framework *fw, uint16_t version)
> {
> if (version > DMI_VERSION) {
> fwts_warning(fw,
> - "SMBIOS version %u.%u is not supported by the dmi_decode "
> - "test. This test only supports SMBIOS version %u.%u and lower.",
> + "SMBIOS version %" PRIu16 ".%" PRIu16
> + " is not supported by the dmi_decode "
> + "test. This test only supports SMBIOS version "
> + "%" PRIu16 ".%" PRIu16 " and lower.",
> VERSION_MAJOR(version), VERSION_MINOR(version),
> VERSION_MAJOR(DMI_VERSION), VERSION_MINOR(DMI_VERSION));
> return FWTS_ERROR;
> @@ -1178,8 +1203,9 @@ static void dmi_scan_tables(fwts_framework *fw,
> /* Sanity check */
> if (hdr.length < 4) {
> fwts_failed(fw, LOG_LEVEL_HIGH, DMI_INVALID_ENTRY_LENGTH,
> - "Invald header length of entry #%d, length was 0x%2.2x.",
> - i, (unsigned int)hdr.length);
> + "Invald header length of entry #%d, "
> + "length was 0x%2.2" PRIx8 ".",
> + i, hdr.length);
> fwts_advice(fw,
> "DMI entry header lengths must be 4 or more bytes long "
> "so this error indicates that the DMI table is unreliable "
> @@ -1208,9 +1234,9 @@ static void dmi_scan_tables(fwts_framework *fw,
>
> if (table_length != (entry_data - table))
> fwts_failed(fw, LOG_LEVEL_MEDIUM, DMI_BAD_TABLE_LENGTH,
> - "DMI table length was %d bytes (as specified by "
> - "the SMBIOS header) but the DMI entries used %d bytes.",
> - table_length, (int)(entry_data - table));
> + "DMI table length was %" PRId16 " bytes (as specified by "
> + "the SMBIOS header) but the DMI entries used %td bytes.",
> + table_length, entry_data - table);
>
> if (struct_count != i)
> fwts_failed(fw, LOG_LEVEL_MEDIUM, DMI_STRUCT_COUNT,
> @@ -1247,7 +1273,8 @@ static int dmi_decode_test1(fwts_framework *fw)
> table = fwts_mmap((off_t)entry.struct_table_address,
> (size_t)entry.struct_table_length);
> if (table == FWTS_MAP_FAILED) {
> - fwts_log_error(fw, "Cannot mmap SMBIOS tables from %8.8x..%8.8x.",
> + fwts_log_error(fw, "Cannot mmap SMBIOS tables from "
> + "%8.8" PRIx32 "..%8.8" PRIx32 ".",
> entry.struct_table_address,
> entry.struct_table_address + entry.struct_table_length);
> return FWTS_ERROR;
>
Acked-by: Ivan Hu <ivan.hu at canonical.com>
More information about the fwts-devel
mailing list