[PATCH] dmicheck: add a marco to shorten dmi_ranges_uint8_check calls

Alex Hung alex.hung at canonical.com
Tue Jan 12 19:04:34 UTC 2021


Signed-off-by: Alex Hung <alex.hung at canonical.com>
---
 src/dmi/dmicheck/dmicheck.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/dmi/dmicheck/dmicheck.c b/src/dmi/dmicheck/dmicheck.c
index c197eb53..8181c1d7 100644
--- a/src/dmi/dmicheck/dmicheck.c
+++ b/src/dmi/dmicheck/dmicheck.c
@@ -67,6 +67,9 @@
 #define CHASSIS_MOBILE			0x04
 #define CHASSIS_SERVER			0x08
 
+#define dmi_ranges_uint8_check(fw, table, addr, field, hdr, offset, ranges) \
+	 _dmi_ranges_uint8_check(fw, table, addr, field, hdr, offset, ranges, sizeof(ranges))
+
 typedef struct {
 	const char *label;
 	const char *field;
@@ -915,7 +918,7 @@ static void dmi_reserved_uint8_check(fwts_framework *fw,
 	}
 }
 
-static void dmi_ranges_uint8_check(fwts_framework *fw,
+static void _dmi_ranges_uint8_check(fwts_framework *fw,
 	const char *table,
 	uint32_t addr,
 	const char *field,
@@ -1419,11 +1422,11 @@ static void dmicheck_entry(fwts_framework *fw,
 				break;
 			dmi_str_check(fw, table, addr, "Internal Reference Designator", hdr, 0x4);
 			fwts_dmi_value_range t8_ranges1[] = {{0, 0x23}, {0xa0, 0xa4}, {0xff, 0xff}};
-			dmi_ranges_uint8_check(fw, table, addr, "Internal Connector Type", hdr, 0x5, t8_ranges1, sizeof(t8_ranges1));
+			dmi_ranges_uint8_check(fw, table, addr, "Internal Connector Type", hdr, 0x5, t8_ranges1);
 			dmi_str_check(fw, table, addr, "External Reference Designator", hdr, 0x6);
-			dmi_ranges_uint8_check(fw, table, addr, "External Connector Type", hdr, 0x7, t8_ranges1, sizeof(t8_ranges1));
+			dmi_ranges_uint8_check(fw, table, addr, "External Connector Type", hdr, 0x7, t8_ranges1);
 			fwts_dmi_value_range t8_ranges2[] = {{0, 0x23}, {0xa0, 0xa1}, {0xff, 0xff}};
-			dmi_ranges_uint8_check(fw, table, addr, "Port Type", hdr, 0x8, t8_ranges2, sizeof(t8_ranges2));
+			dmi_ranges_uint8_check(fw, table, addr, "Port Type", hdr, 0x8, t8_ranges2);
 			break;
 
 		case 9: /* 7.10 */
@@ -1432,7 +1435,7 @@ static void dmicheck_entry(fwts_framework *fw,
 				break;
 			dmi_str_check(fw, table, addr, "Slot Designation", hdr, 0x4);
 			fwts_dmi_value_range t9_ranges[] = {{1, 0x28}, {0x30, 0x30}, {0xa0, 0xc6}};
-			dmi_ranges_uint8_check(fw, table, addr, "Slot Type", hdr, 0x5, t9_ranges, sizeof(t9_ranges));
+			dmi_ranges_uint8_check(fw, table, addr, "Slot Type", hdr, 0x5, t9_ranges);
 			dmi_min_max_uint8_check(fw, table, addr, "Slot Data Bus Width", hdr, 0x6, 0x1, 0xe);
 			dmi_min_max_uint8_check(fw, table, addr, "Current Usage", hdr, 0x7, 0x1, 0x5);
 			dmi_min_max_uint8_check(fw, table, addr, "Slot Length", hdr, 0x8, 0x1, 0x6);
@@ -1529,12 +1532,12 @@ static void dmicheck_entry(fwts_framework *fw,
 			if (hdr->length < 0x14)
 				break;
 			fwts_dmi_value_range t15_ranges1[] = {{0, 0x4}, {0x80, 0xff}};
-			dmi_ranges_uint8_check(fw, table, addr, "Access Method", hdr, 0xa, t15_ranges1, sizeof(t15_ranges1));
+			dmi_ranges_uint8_check(fw, table, addr, "Access Method", hdr, 0xa, t15_ranges1);
 			dmi_reserved_bits_check(fw, table, addr, "Log Status", hdr, sizeof(uint8_t), 0xb, 2, 7);
 			if (hdr->length < 0x17)
 				break;
 			fwts_dmi_value_range t15_ranges2[] = {{0, 0x1}, {0x80, 0xff}};
-			dmi_ranges_uint8_check(fw, table, addr, "Log Header Format", hdr, 0x14, t15_ranges2, sizeof(t15_ranges2));
+			dmi_ranges_uint8_check(fw, table, addr, "Log Header Format", hdr, 0x14, t15_ranges2);
 			if (hdr->length < 0x17 + data[0x15] * data[0x16])
 				break;
 			if (data[0x16] >= 0x02) {
@@ -1571,7 +1574,7 @@ static void dmicheck_entry(fwts_framework *fw,
 			if (hdr->length < 0x0f)
 				break;
 			fwts_dmi_value_range t16_ranges[] = {{0x1, 0xa}, {0xa0, 0xa4}};
-			dmi_ranges_uint8_check(fw, table, addr, "Location", hdr, 0x4, t16_ranges, sizeof(t16_ranges));
+			dmi_ranges_uint8_check(fw, table, addr, "Location", hdr, 0x4, t16_ranges);
 			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);
 			dmi_min_max_uint32_check(fw, table, addr, "Maximum Capacity", hdr, 0x7, 0, 0x80000000);
@@ -1684,7 +1687,7 @@ static void dmicheck_entry(fwts_framework *fw,
 				break;
 			dmi_min_max_uint8_check(fw, table, addr, "Type", hdr, 0x4, 0x1, 0x9);
 			fwts_dmi_value_range t21_ranges[] = {{0x1, 0x8}, {0xa0, 0xa2}};
-			dmi_ranges_uint8_check(fw, table, addr, "Interface", hdr, 0x5, t21_ranges, sizeof(t21_ranges));
+			dmi_ranges_uint8_check(fw, table, addr, "Interface", hdr, 0x5, t21_ranges);
 			break;
 
 		case 22: /* 7.23 */
@@ -1829,7 +1832,7 @@ static void dmicheck_entry(fwts_framework *fw,
 			for (i = 4; i <= 9; i++)
 				dmi_reserved_uint8_check(fw, table, addr, "Reserved", hdr, i);
 			fwts_dmi_value_range t32_ranges[] = {{0, 0x8}, {0x80, 0xff}};
-			dmi_ranges_uint8_check(fw, table, addr, "Boot Status", hdr, 0xa, t32_ranges, sizeof(t32_ranges));
+			dmi_ranges_uint8_check(fw, table, addr, "Boot Status", hdr, 0xa, t32_ranges);
 			break;
 
 		case 33: /* 7.34 */
-- 
2.25.1




More information about the fwts-devel mailing list