summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/dmidecode.c15
-rw-r--r--src/pymap.xml32
2 files changed, 39 insertions, 8 deletions
diff --git a/src/dmidecode.c b/src/dmidecode.c
index 9a35ecb..41f882c 100644
--- a/src/dmidecode.c
+++ b/src/dmidecode.c
@@ -1160,10 +1160,11 @@ void dmi_processor_voltage(xmlNode *node, u8 code)
dmixml_AddAttribute(vltg_n, "unknown_value", "1");
} else {
for(i = 0; i <= 2; i++) {
- if( code & (1 << i) ) {
- xmlNode *v_n = dmixml_AddTextChild(vltg_n, "Voltage", "%s", voltage[i]);
- dmixml_AddAttribute(v_n, "unit", "V");
- }
+ xmlNode *v_n = dmixml_AddTextChild(vltg_n, "Voltage", "%s", voltage[i]);
+ dmixml_AddAttribute(v_n, "key_compound", "%s V", voltage[i]);
+ dmixml_AddAttribute(v_n, "available", "%i", (code & (1 << i) ? 1 : 0));
+ dmixml_AddAttribute(v_n, "unit", "V");
+ v_n = NULL;
}
}
}
@@ -1340,7 +1341,7 @@ void dmi_memory_controller_ec_capabilities(xmlNode *node, const char *tagname, u
if(code & (1 << i)) {
xmlNode *c_n = dmixml_AddTextChild(cap_n, "Capability", "%s", capabilities[i]);
assert( c_n != NULL );
- dmixml_AddAttribute(c_n, "index", "%i", i);
+ dmixml_AddAttribute(c_n, "index", "%i", i+1);
}
}
}
@@ -1411,7 +1412,7 @@ void dmi_memory_controller_slots(xmlNode *node, u8 count, const u8 * p)
assert( mslts_n != NULL );
for(i = 0; i < count; i++) {
- xmlNode *sl_n = dmixml_AddTextChild(mslts_n, "Slot", "0x%04x:", WORD(p + sizeof(u16) * i));
+ xmlNode *sl_n = dmixml_AddTextChild(mslts_n, "Slot", "0x%x:", WORD(p + sizeof(u16) * i));
dmixml_AddAttribute(sl_n, "index", "%i", i);
}
}
@@ -1448,7 +1449,7 @@ void dmi_memory_module_types(xmlNode *node, const char *tagname, u16 code)
if(code & (1 << i)) {
xmlNode *mt_n = dmixml_AddTextChild(mmt_n, "ModuleType", types[i]);
assert( mt_n != NULL );
- dmixml_AddAttribute(mt_n, "index", "%i", i);
+ dmixml_AddAttribute(mt_n, "index", "%i", i+1);
}
}
}
diff --git a/src/pymap.xml b/src/pymap.xml
index e59fdf1..263f7db 100644
--- a/src/pymap.xml
+++ b/src/pymap.xml
@@ -174,8 +174,38 @@
</Map>
</TypeMap>
- <!-- FIXME : Type 05 : Memory Controller -->
+ <!-- Type 05 : Memory Controller -->
<TypeMap id="0x05">
+ <Map rootpath="/dmidecode/MemoryCtrlInfo" keytype="string" key="@handle" valuetype="dict">
+ <Map keytype="constant" key="dmi_type" valuetype="integer" value="@type"/>
+ <Map keytype="constant" key="dmi_handle" valuetype="string" value="@handle"/>
+ <Map keytype="constant" key="dmi_size" valuetype="integer" value="@size"/>
+ <Map keytype="constant" key="data" valuetype="dict">
+ <Map keytype="constant" key="Associated Memory Slots"
+ valuetype="list:string" value="AssociatedMemorySlots/Slot"/>
+ <Map keytype="constant" key="Current Interleave" valuetype="string" value="CurrentInterleave"/>
+ <Map keytype="constant" key="Enabled Error Correcting Capabilities"
+ valuetype="list:string" value="EnabledErrorCorrection/Capability"
+ fixedsize="6" index_attr="index"/>
+ <Map keytype="constant" key="Error Correcting Capabilities"
+ valuetype="list:string" value="ErrorCorrection/Capabilities/Capability"
+ fixedsize="6" index_attr="index"/>
+ <Map keytype="constant" key="Error Detecting Method"
+ valuetype="string" value="ErrorCorrection/CorrectionMethod"/>
+ <Map keytype="constant" key="Maximum Memory Module Size"
+ valuetype="string" value="concat(MaxMemoryModuleSize,' ',MaxMemoryModuleSize/@unit)"/>
+ <Map keytype="constant" key="Maximum Total Memory Size"
+ valuetype="string" value="concat(MaxTotalMemorySize,' ',MaxTotalMemorySize/@unit)"/>
+ <Map rootpath="Voltages" keytype="constant" key="Memory Module Voltage" valuetype="dict">
+ <Map keytype="string" key="Voltage/@key_compound" valuetype="boolean" value="Voltage/@available"/>
+ </Map>
+ <Map keytype="constant" key="Supported Interleave" valuetype="string" value="SupportedInterleave"/>
+ <Map keytype="constant" key="Supported Memory Types"
+ valuetype="list:string" value="SupportedTypes/ModuleType" fixedsize="11" index_attr="index"/>
+ <Map keytype="constant" key="Supported Speeds"
+ valuetype="list:string" value="SupportedSpeeds/Speed" emptyIsNone="1"/>
+ </Map>
+ </Map>
</TypeMap>
<!-- FIXME : Type 06 : Memory Module -->