aboutsummaryrefslogtreecommitdiffstats
path: root/com32/gplinclude
diff options
context:
space:
mode:
authorPierre-Alexandre Meyer <pierre@mouraf.org>2009-05-08 21:56:36 -0700
committerPierre-Alexandre Meyer <pierre@mouraf.org>2009-05-08 21:56:36 -0700
commitdd21aee0f0815aa717930ca9033949618c949dab (patch)
tree65aa3fbd988ef71c2636c1a8b2f3ae0e9b201c2e /com32/gplinclude
parent6a4c253a2f077e6af08b3038b413ad8cd095a9b5 (diff)
downloadsyslinux-dd21aee0f0815aa717930ca9033949618c949dab.tar.gz
syslinux-dd21aee0f0815aa717930ca9033949618c949dab.tar.xz
syslinux-dd21aee0f0815aa717930ca9033949618c949dab.zip
gpllib: Add Memory Module Information (Type 6, Obsolete) (DMI)
The SMBIOS specification defines: 3.3.7 Memory Module Information (Type 6, Obsolete) From the spec (v2.6.1): One Memory Module Information structure is included for each memory-module socket in the system. The structure describes the speed, type, size, and error status of each system memory module. The supported attributes of each module are described by the “owning” Memory Controller Information structure. Note: This structure, and its companion Memory Controller Information (Type 5, Obsolete), are obsolete starting with version 2.1 of this specification; the Physical Memory Array (Type 16) and Memory Device (Type 17) structures should be used instead. BIOS providers might choose to implement both memory description types to allow existing DMI browsers to properly display the system’s memory attributes. This patch adds decoding support for this type. Adapted from the dmidecode project. Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
Diffstat (limited to 'com32/gplinclude')
-rw-r--r--com32/gplinclude/dmi/dmi.h2
-rw-r--r--com32/gplinclude/dmi/dmi_memory.h16
2 files changed, 18 insertions, 0 deletions
diff --git a/com32/gplinclude/dmi/dmi.h b/com32/gplinclude/dmi/dmi.h
index 89782a97..d065534f 100644
--- a/com32/gplinclude/dmi/dmi.h
+++ b/com32/gplinclude/dmi/dmi.h
@@ -64,8 +64,10 @@ typedef struct {
s_chassis chassis;
s_processor processor;
s_battery battery;
+ s_memory_module memory_module[MAX_DMI_MEMORY_ITEMS];
s_memory memory[MAX_DMI_MEMORY_ITEMS];
s_ipmi ipmi;
+ int memory_module_count;
int memory_count;
dmi_table dmitable;
} s_dmi;
diff --git a/com32/gplinclude/dmi/dmi_memory.h b/com32/gplinclude/dmi/dmi_memory.h
index 2b744b5c..6939cd00 100644
--- a/com32/gplinclude/dmi/dmi_memory.h
+++ b/com32/gplinclude/dmi/dmi_memory.h
@@ -49,6 +49,17 @@ char part_number[MEMORY_PART_NUMBER_SIZE];
bool filled;
} s_memory;
+typedef struct {
+char socket_designation[8];
+char bank_connections[8];
+char speed[8];
+char type[16];
+char installed_size[8];
+char enabled_size[8];
+char error_status[8];
+bool filled;
+} s_memory_module;
+
void dmi_memory_array_error_handle(uint16_t code,char *array);
void dmi_memory_device_width(uint16_t code, char *width);
void dmi_memory_device_size(uint16_t code, char *size);
@@ -58,4 +69,9 @@ const char *dmi_memory_device_type(uint8_t code);
void dmi_memory_device_type_detail(uint16_t code,char *type_detail);
void dmi_memory_device_speed(uint16_t code, char *speed);
+void dmi_memory_module_connections(uint8_t, char*);
+void dmi_memory_module_speed(uint8_t, char*);
+void dmi_memory_module_types(uint16_t, const char*, char*);
+void dmi_memory_module_size(uint8_t, char*);
+void dmi_memory_module_error(uint8_t, const char*, char*);
#endif