diff options
author | nima <nima@abc39116-655e-4be6-ad55-d661dc543056> | 2008-09-04 06:09:55 +0000 |
---|---|---|
committer | nima <nima@abc39116-655e-4be6-ad55-d661dc543056> | 2008-09-04 06:09:55 +0000 |
commit | e7369539f2ccab7db4fb91f6ae470d8a5a4d25fb (patch) | |
tree | d562a3d5ebc7bd0e2122e84d5cfb649d76068bff /dmidecode.c | |
parent | b3880a3305dcdd866638202b9da95cd99f06b085 (diff) | |
download | python-dmidecode-e7369539f2ccab7db4fb91f6ae470d8a5a4d25fb.tar.gz python-dmidecode-e7369539f2ccab7db4fb91f6ae470d8a5a4d25fb.tar.xz python-dmidecode-e7369539f2ccab7db4fb91f6ae470d8a5a4d25fb.zip |
Cleaning up of the dmidecode module, mostly conversion of things that can be
Python `None's or `Int's but were `String'.
Replaced a meaningless int dictionary key to `data'.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@68 abc39116-655e-4be6-ad55-d661dc543056
Diffstat (limited to 'dmidecode.c')
-rw-r--r-- | dmidecode.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/dmidecode.c b/dmidecode.c index e10b931..d461c6b 100644 --- a/dmidecode.c +++ b/dmidecode.c @@ -1021,15 +1021,14 @@ static PyObject *dmi_processor_voltage(u8 code) { return data; } -const char *dmi_processor_frequency(u8 *p, char *_) { +int dmi_processor_frequency(u8 *p) { u16 code = WORD(p); - if(code) sprintf(_, "%u MHz", code); - else sprintf(_, "Unknown"); - return _; + if(code) return code; //. Value measured in MHz + else return -1; //. Unknown } -static PyObject *dmi_processor_frequency_py(u8 *p, char *_) { - return PyString_FromString(dmi_processor_frequency(p, _)); +static PyObject *dmi_processor_frequency_py(u8 *p) { + return PyInt_FromLong(dmi_processor_frequency(p)); } static const char *dmi_processor_status(u8 code) { @@ -2034,11 +2033,12 @@ static PyObject *dmi_memory_device_width(u16 code) { static PyObject *dmi_memory_device_size(u16 code) { PyObject *data = NULL; - if(code==0) data = PyString_FromString("No Module Installed"); - else if(code==0xFFFF) data = PyString_FromString(" Unknown"); + if(code==0) data = Py_None; //. No Module Installed + else if(code==0xFFFF) data = PyString_FromString("Unknown"); //. Unknown else { - if(code&0x8000) data = PyString_FromFormat("%u kB", code&0x7FFF); - else data = PyString_FromFormat("%u MB", code); + //. Keeping this as String rather than Int as it has KB and MB representations... + if(code&0x8000) data = PyString_FromFormat("%d KB", code&0x7FFF); + else data = PyString_FromFormat("%d MB", code); } return data; } @@ -3088,15 +3088,15 @@ PyObject* dmi_decode(struct dmi_header *h, u16 ver) { PyDict_SetItemString(caseData, "Voltage", _val); Py_DECREF(_val); - _val = dmi_processor_frequency_py(data+0x12, _); + _val = dmi_processor_frequency_py(data+0x12); PyDict_SetItemString(caseData, "External Clock", _val); Py_DECREF(_val); - _val = dmi_processor_frequency_py(data+0x14, _); + _val = dmi_processor_frequency_py(data+0x14); PyDict_SetItemString(caseData, "Max Speed", _val); Py_DECREF(_val); - _val = dmi_processor_frequency_py(data+0x16, _); + _val = dmi_processor_frequency_py(data+0x16); PyDict_SetItemString(caseData, "Current Speed", _val); Py_DECREF(_val); @@ -3507,7 +3507,7 @@ PyObject* dmi_decode(struct dmi_header *h, u16 ver) { Py_DECREF(_val); } - _val = PyString_FromFormat("%u", WORD(data+0x0D)); + _val = PyInt_FromLong(WORD(data+0x0D)); PyDict_SetItemString(caseData, "Number Of Devices", _val); Py_DECREF(_val); break; @@ -4463,7 +4463,10 @@ static void dmi_table(u32 base, u16 len, u16 num, u16 ver, const char *devmem, P dmi_dump(&h, _); dmiSetItem(hDict, "lookup", _); } else { - PyDict_SetItem(hDict, PyInt_FromLong(i), dmi_decode(&h, ver)); + //. TODO: //. Is the value of `i' important?... + //. TODO: PyDict_SetItem(hDict, PyInt_FromLong(i), dmi_decode(&h, ver)); + //. TODO: ...removed and replaced with `data'... + PyDict_SetItem(hDict, PyString_FromString("data"), dmi_decode(&h, ver)); PyDict_SetItem(pydata, PyString_FromString(hid), hDict); } } else if(!(opt.flags & FLAG_QUIET)) |