[PATCH] fwts_acpu_tables: move array gas_space_id_names into get_space_id_name
Colin King
colin.king at canonical.com
Sun Apr 11 13:09:50 UTC 2021
From: Colin Ian King <colin.king at canonical.com>
The scope of gas_space_id_names is limited to function get_space_id_name
so move it into the function. Also add array bounds checking based
on the array size and don't rely on index position 0x0b to cater for
id 0x7f as we may add more GAS types in the future and this last index
position will change, just use a literal string instead.
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
src/lib/src/fwts_acpi_tables.c | 46 ++++++++++++++++++----------------
1 file changed, 25 insertions(+), 21 deletions(-)
diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
index ac3b9890..b870bffd 100644
--- a/src/lib/src/fwts_acpi_tables.c
+++ b/src/lib/src/fwts_acpi_tables.c
@@ -1604,30 +1604,34 @@ void fwts_acpi_reserved_type_check(
}
/*
- * Space Id defined for Generic Address Structure (GAS)
- * See Table 5.1: Generic Address Structure (GAS) in ACPI spec
- * Also see fwts_acpi.h
+ * get_space_id_name()
+ * convert Generic Address Structure to a string, NULL if undefined
*/
-static const char *gas_space_id_names[] = {
- "System Memory (0x0)",
- "System I/O (0x1)",
- "PCI Configuration (0x2)",
- "Embedded Controller (0x3)",
- "SMBus (0x4)",
- "SystemCMOS (0x5)",
- "PciBarTarget (0x6)",
- "IPMI (0x7)",
- "General PurposeIO (0x8)",
- "GenericSerialBus (0x9)",
- "Platform Communications Channel (0xa)",
- "Functional Fixed Hardware (0x7f)",
-};
-
-static const char *get_space_id_name(uint8_t id) {
- if (id <= 0x0a)
+static const char *get_space_id_name(const uint8_t id)
+{
+ /*
+ * Space Id defined for Generic Address Structure (GAS)
+ * See Table 5.1: Generic Address Structure (GAS) in ACPI spec
+ * Also see fwts_acpi.h
+ */
+ static const char *gas_space_id_names[] = {
+ "System Memory (0x0)",
+ "System I/O (0x1)",
+ "PCI Configuration (0x2)",
+ "Embedded Controller (0x3)",
+ "SMBus (0x4)",
+ "SystemCMOS (0x5)",
+ "PciBarTarget (0x6)",
+ "IPMI (0x7)",
+ "General PurposeIO (0x8)",
+ "GenericSerialBus (0x9)",
+ "Platform Communications Channel (0xa)"
+ };
+
+ if (id < FWTS_ARRAY_SIZE(gas_space_id_names))
return gas_space_id_names[id];
else if (id == 0x7f)
- return gas_space_id_names[0x0b];
+ return "Functional Fixed Hardware (0x7f)";
else
return NULL;
}
--
2.30.2
More information about the fwts-devel
mailing list