dmidecode-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dmidecode] [PATCH] dmidecode: Decode system slot base bus width and pee


From: Jean Delvare
Subject: [dmidecode] [PATCH] dmidecode: Decode system slot base bus width and peers
Date: Thu, 17 Oct 2019 16:17:21 +0200

SMBIOS version 3.2.0 added extra fields are the end of structure type
9. Decode these extra fields (base data bus width and peers) when
present.

Signed-off-by: Jean Delvare <address@hidden>
---
The only system I have seen which includes these fields has them
filled with 0s, so not exactly useful.

 dmidecode.c |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

--- dmidecode.orig/dmidecode.c  2019-10-16 15:35:57.901685017 +0200
+++ dmidecode/dmidecode.c       2019-10-17 16:07:44.054060675 +0200
@@ -2033,6 +2033,16 @@ static void dmi_slot_segment_bus_func(u1
                       prefix, code1, code2, code3 >> 3, code3 & 0x7);
 }
 
+static void dmi_slot_peers(u8 n, const u8 *data, const char *prefix)
+{
+       int i;
+
+       for (i = 1; i <= n; i++, data += 5)
+               printf("%sPeer Device %d: %04x:%02x:%02x.%x (Width %u)\n",
+                      prefix, i, WORD(data), data[2], data[3] >> 3,
+                      data[3] & 0x07, data[4]);
+}
+
 /*
  * 7.11 On Board Devices Information (Type 10)
  */
@@ -4213,6 +4223,11 @@ static void dmi_decode(const struct dmi_
                                dmi_slot_characteristics(data[0x0B], 
data[0x0C], "\t\t");
                        if (h->length < 0x11) break;
                        dmi_slot_segment_bus_func(WORD(data + 0x0D), 
data[0x0F], data[0x10], "\t");
+                       if (h->length < 0x13) break;
+                       printf("\tData Bus Width: %u\n", data[0x11]);
+                       printf("\tPeer Devices: %u\n", data[0x12]);
+                       if (h->length - 0x13 >= data[0x12] * 5)
+                               dmi_slot_peers(data[0x12], data + 0x13, "\t");
                        break;
 
                case 10: /* 7.11 On Board Devices Information */


-- 
Jean Delvare
SUSE L3 Support



reply via email to

[Prev in Thread] Current Thread [Next in Thread]