summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Sommerseth <davids@redhat.com>2009-04-09 12:12:56 +0200
committerDavid Sommerseth <davids@redhat.com>2009-04-29 11:22:11 +0200
commit95b156e3d8a6b82bddb5516735e82355f5dee50a (patch)
treedc9c346350b5e22d36bd52e828b2995fabf0dc22 /src
parent581b015c91a3b364b1c1324bed775bfd2ce99dbd (diff)
downloadpython-dmidecode-95b156e3d8a6b82bddb5516735e82355f5dee50a.tar.gz
python-dmidecode-95b156e3d8a6b82bddb5516735e82355f5dee50a.tar.xz
python-dmidecode-95b156e3d8a6b82bddb5516735e82355f5dee50a.zip
Removed all Python dependencies in dmidecode.[ch]
Diffstat (limited to 'src')
-rw-r--r--src/dmidecode.c59
-rw-r--r--src/dmidecode.h5
-rw-r--r--src/dmidecodemodule.c1
-rw-r--r--src/dmidecodemodule.h4
4 files changed, 34 insertions, 35 deletions
diff --git a/src/dmidecode.c b/src/dmidecode.c
index c146969..f6f4283 100644
--- a/src/dmidecode.c
+++ b/src/dmidecode.c
@@ -60,8 +60,6 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
-#include <Python.h>
-
/*
#undef NDEBUG
*/
@@ -5388,12 +5386,14 @@ int _smbios_decode_check(u8 * buf)
!checksum(buf + 0x10, 0x0F)) ? 0 : 1;
return check;
}
-int smbios_decode_set_version(u8 * buf, const char *devmem, PyObject ** pydata)
+
+int smbios_decode_set_version(u8 * buf, const char *devmem, xmlNode *node)
{
int check = _smbios_decode_check(buf);
- char vbuf[64];
- bzero(vbuf, 64);
+ xmlNode *data_n = xmlNewChild(node, NULL, (xmlChar *) "SMBIOSversion", NULL);
+ assert( data_n != NULL );
+
if(check == 1) {
u16 ver = (buf[0x06] << 8) + buf[0x07];
@@ -5414,20 +5414,18 @@ int smbios_decode_set_version(u8 * buf, const char *devmem, PyObject ** pydata)
ver = 0x0206;
break;
}
- if(_m || _M)
- sprintf(vbuf, "SMBIOS %i.%i present (Version fixup 2.%d -> 2.%d)", ver >> 8,
- ver & 0xFF, _m, _M);
- else
- sprintf(vbuf, "SMBIOS %i.%i present", ver >> 8, ver & 0xFF);
- } else if(check == 0) {
- sprintf(vbuf, "No SMBIOS nor DMI entry point found");
- }
- if(check == 1) {
- if(*pydata) {
- Py_DECREF(*pydata);
+ if(_m || _M) {
+ dmixml_AddTextContent(data_n, "SMBIOS %i.%i present (Version fixup 2.%d -> 2.%d)",
+ ver >> 8, ver & 0xFF, _m, _M);
+ dmixml_AddAttribute(data_n, "version", "%i.%i", ver >> 8, ver & 0xFF);
+ dmixml_AddAttribute(data_n, "fixup_version", "2.%d_2.%d", _m, _M);
+ } else {
+ dmixml_AddTextContent(data_n, "SMBIOS %i.%i present", ver >> 8, ver & 0xFF);
+ dmixml_AddAttribute(data_n, "version", "%i.%i", ver >> 8, ver & 0xFF);
}
- *pydata = PyString_FromString(vbuf);
- Py_INCREF(*pydata);
+ } else if(check == 0) {
+ dmixml_AddTextContent(data_n, "No SMBIOS nor DMI entry point found");
+ dmixml_AddAttribute(data_n, "unknown", "1");
}
return check;
}
@@ -5464,26 +5462,27 @@ int _legacy_decode_check(u8 * buf)
check = 1; //. Good
return check;
}
-int legacy_decode_set_version(u8 * buf, const char *devmem, PyObject ** pydata)
+
+int legacy_decode_set_version(u8 * buf, const char *devmem, xmlNode *node)
{
int check = _legacy_decode_check(buf);
- char vbuf[64];
- bzero(vbuf, 64);
+ xmlNode *data_n = xmlNewChild(node, NULL, (xmlChar *) "LegacyDMI", NULL);
+ assert( data_n != NULL );
+
if(check == 1) {
- sprintf(vbuf, "Legacy DMI %i.%i present", buf[0x0E] >> 4, buf[0x0E] & 0x0F);
+ dmixml_AddTextContent(data_n, "Legacy DMI %i.%i present",
+ buf[0x0E] >> 4, buf[0x0E] & 0x0F);
+ dmixml_AddAttribute(data_n, "version", "%i.%i",
+ buf[0x0E] >> 4, buf[0x0E] & 0x0F);
} else if(check == 0) {
- sprintf(vbuf, "No SMBIOS nor DMI entry point found");
- }
- if(check == 1) {
- if(*pydata) {
- Py_DECREF(*pydata);
- }
- *pydata = PyString_FromString(vbuf);
- Py_INCREF(*pydata);
+ dmixml_AddTextContent(data_n, "No SMBIOS nor DMI entry point found");
+ dmixml_AddAttribute(data_n, "unknown", "1");
}
+
return check;
}
+
int legacy_decode(u8 * buf, const char *devmem, xmlNode *xmlnode)
{
int check = _legacy_decode_check(buf);
diff --git a/src/dmidecode.h b/src/dmidecode.h
index 9f6738d..bbc8eca 100644
--- a/src/dmidecode.h
+++ b/src/dmidecode.h
@@ -19,7 +19,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include <Python.h>
#include <libxml/tree.h>
struct dmi_header {
@@ -33,9 +32,9 @@ void dmi_dump(xmlNode *node, struct dmi_header * h);
void dmi_decode(xmlNode *handle_n, struct dmi_header * h, u16 ver);
int address_from_efi(size_t * address);
void to_dmi_header(struct dmi_header *h, u8 * data);
-int smbios_decode_set_version(u8 * buf, const char *devmem, PyObject ** pydata);
+int smbios_decode_set_version(u8 * buf, const char *devmem, xmlNode *node);
int smbios_decode(u8 * buf, const char *devmem, xmlNode *xmlnode);
-int legacy_decode_set_version(u8 * buf, const char *devmem, PyObject ** pydata);
+int legacy_decode_set_version(u8 * buf, const char *devmem, xmlNode *node);
int legacy_decode(u8 * buf, const char *devmem, xmlNode *xmlnode);
const char *dmi_string(const struct dmi_header *dm, u8 s);
diff --git a/src/dmidecodemodule.c b/src/dmidecodemodule.c
index 9528647..e9e688c 100644
--- a/src/dmidecodemodule.c
+++ b/src/dmidecodemodule.c
@@ -1,3 +1,4 @@
+#include <Python.h>
#include "dmidecodemodule.h"
#include <mcheck.h>
diff --git a/src/dmidecodemodule.h b/src/dmidecodemodule.h
index 11a7f15..4de9a2d 100644
--- a/src/dmidecodemodule.h
+++ b/src/dmidecodemodule.h
@@ -29,8 +29,8 @@ extern void to_dmi_header(struct dmi_header *h, u8 * data);
extern void dmi_table(u32 base, u16 len, u16 num, u16 ver, const char *devmem);
extern int smbios_decode(u8 * buf, const char *devmem, xmlNode *node);
extern int legacy_decode(u8 * buf, const char *devmem, xmlNode *node);
-extern int smbios_decode_set_version(u8 * buf, const char *devmem, PyObject ** pydata);
-extern int legacy_decode_set_version(u8 * buf, const char *devmem, PyObject ** pydata);
+extern int smbios_decode_set_version(u8 * buf, const char *devmem, xmlNode *node);
+extern int legacy_decode_set_version(u8 * buf, const char *devmem, xmlNode *node);
extern void *mem_chunk(size_t base, size_t len, const char *devmem);
extern u8 *parse_opt_type(u8 * p, const char *arg);