dmidecode-devel
[Top][All Lists]
Advanced

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

[dmidecode] [PATCH 3/5] dmidecode: Add fields from the SMBIOS 3.0.0 spec


From: Jean Delvare
Subject: [dmidecode] [PATCH 3/5] dmidecode: Add fields from the SMBIOS 3.0.0 specification
Date: Tue, 21 Apr 2015 11:57:36 +0200

Add support for 3 new fields in DMI type 4 (Processor Information):
extended core and thread counts, for systems with more than 255 of
those.
---
 dmidecode.c |   14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

--- dmidecode.orig/dmidecode.c  2015-04-21 11:05:05.403762263 +0200
+++ dmidecode/dmidecode.c       2015-04-21 11:05:07.537801609 +0200
@@ -69,7 +69,7 @@
 #define out_of_spec "<OUT OF SPEC>"
 static const char *bad_index = "<BAD INDEX>";
 
-#define SUPPORTED_SMBIOS_VER 0x0208
+#define SUPPORTED_SMBIOS_VER 0x0300
 
 #define FLAG_NO_FILE_OFFSET     (1 << 0)
 
@@ -3394,11 +3394,17 @@ static void dmi_decode(const struct dmi_
                                dmi_string(h, data[0x22]));
                        if (h->length < 0x28) break;
                        if (data[0x23] != 0)
-                               printf("\tCore Count: %u\n", data[0x23]);
+                               printf("\tCore Count: %u\n",
+                                       h->length >= 0x2C && data[0x23] == 0xFF 
?
+                                       WORD(data + 0x2A) : data[0x23]);
                        if (data[0x24] != 0)
-                               printf("\tCore Enabled: %u\n", data[0x24]);
+                               printf("\tCore Enabled: %u\n",
+                                       h->length >= 0x2E && data[0x24] == 0xFF 
?
+                                       WORD(data + 0x2C) : data[0x24]);
                        if (data[0x25] != 0)
-                               printf("\tThread Count: %u\n", data[0x25]);
+                               printf("\tThread Count: %u\n",
+                                       h->length >= 0x30 && data[0x25] == 0xFF 
?
+                                       WORD(data + 0x2E) : data[0x25]);
                        printf("\tCharacteristics:");
                        dmi_processor_characteristics(WORD(data + 0x26), 
"\t\t");
                        break;

-- 
Jean Delvare
SUSE L3 Support



reply via email to

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