summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2024-02-10 12:06:47 +0100
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2024-03-27 09:22:49 +0100
commit23109d0575bd9bd96ff0c0dabc00668bebc78239 (patch)
treee210213ae0d20aa2ca5acb44e289487f1e7ddddd
parent4b0c1c41166f2aa92ed57e44e793638d4964a224 (diff)
cmd: smbios: type 1 wake-up time, family
Correct type 1 output * render wake up time as string * print family string * remove duplicate serial number output Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-rw-r--r--cmd/smbios.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/cmd/smbios.c b/cmd/smbios.c
index 66f6b761378..d3bd8b12a67 100644
--- a/cmd/smbios.c
+++ b/cmd/smbios.c
@@ -14,6 +14,18 @@
DECLARE_GLOBAL_DATA_PTR;
+static const char * const wakeup_type_strings[] = {
+ "Reserved", /* 0x00 */
+ "Other", /* 0x01 */
+ "Unknown", /* 0x02 */
+ "APM Timer", /* 0x03 */
+ "Modem Ring", /* 0x04 */
+ "Lan Remote", /* 0x05 */
+ "Power Switch", /* 0x06 */
+ "PCI PME#", /* 0x07 */
+ "AC Power Restored", /* 0x08 */
+};
+
/**
* smbios_get_string() - get SMBIOS string from table
*
@@ -72,6 +84,14 @@ void smbios_print_str(const char *label, void *table, u8 index)
printf("\t%s: %s\n", label, smbios_get_string(table, index));
}
+const char *smbios_wakeup_type_str(u8 wakeup_type)
+{
+ if (wakeup_type >= ARRAY_SIZE(wakeup_type_strings))
+ /* Values over 0x08 are reserved. */
+ wakeup_type = 0;
+ return wakeup_type_strings[wakeup_type];
+}
+
static void smbios_print_type1(struct smbios_type1 *table)
{
printf("System Information\n");
@@ -81,11 +101,12 @@ static void smbios_print_type1(struct smbios_type1 *table)
smbios_print_str("Serial Number", table, table->serial_number);
if (table->length >= 0x19) {
printf("\tUUID: %pUl\n", table->uuid);
- smbios_print_str("Wake Up Type", table, table->serial_number);
+ printf("\tWake-up Type: %s\n",
+ smbios_wakeup_type_str(table->wakeup_type));
}
if (table->length >= 0x1b) {
- smbios_print_str("Serial Number", table, table->serial_number);
smbios_print_str("SKU Number", table, table->sku_number);
+ smbios_print_str("Family", table, table->family);
}
}