summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornima <nima@abc39116-655e-4be6-ad55-d661dc543056>2008-10-30 02:11:56 +0000
committernima <nima@abc39116-655e-4be6-ad55-d661dc543056>2008-10-30 02:11:56 +0000
commit6e5ae9b4399e847b365b00e03b8c619efdf3bba1 (patch)
tree308a8cc2ea37ef02a6fcf2ed12dbcf2f50532b56
parent90f1ca30ef2d9ce324fc198ea7c3a128410d085a (diff)
downloadpython-dmidecode-6e5ae9b4399e847b365b00e03b8c619efdf3bba1.tar.gz
python-dmidecode-6e5ae9b4399e847b365b00e03b8c619efdf3bba1.tar.xz
python-dmidecode-6e5ae9b4399e847b365b00e03b8c619efdf3bba1.zip
Implementing (incomplete) upstream changes.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@86 abc39116-655e-4be6-ad55-d661dc543056
-rw-r--r--Makefile4
-rw-r--r--dmidecodemodule.c26
2 files changed, 24 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 5a743b7..470b697 100644
--- a/Makefile
+++ b/Makefile
@@ -23,8 +23,8 @@ CFLAGS += -I/usr/include/$(PY)
#CFLAGS += -DALIGNMENT_WORKAROUND
#.
#. When debugging, disable -O2 and enable -g.
-#CFLAGS += -g -DNDEBUG
-CFLAGS += -O2
+CFLAGS += -g
+#CFLAGS += -O2 -DNDEBUG
SOFLAGS = -shared -fPIC
diff --git a/dmidecodemodule.c b/dmidecodemodule.c
index 62d36c6..69e8351 100644
--- a/dmidecodemodule.c
+++ b/dmidecodemodule.c
@@ -1,10 +1,15 @@
#include "dmidecodemodule.h"
#include <mcheck.h>
+static void init() {
+ opt.devmem = DEFAULT_MEM_DEV;
+ opt.flags=0;
+ opt.type = NULL;
+}
+
static PyObject* dmidecode_get(PyObject *self, const char* section) {
//mtrace();
-
/* This is `embedding API', not applicable to this dmidecode module which is `Extending'
Py_SetProgramName("dmidecode");
int argc = 3;
@@ -28,9 +33,6 @@ static PyObject* dmidecode_get(PyObject *self, const char* section) {
}
/* Set default option values */
- opt.devmem = DEFAULT_MEM_DEV;
- opt.flags=0;
- opt.type = NULL;
opt.type=parse_opt_type(opt.type, section);
if(opt.type==NULL) return NULL;
@@ -111,6 +113,16 @@ static PyObject* dmidecode_get(PyObject *self, const char* section) {
return pydata;
}
+static PyObject* dmidecode_dump(PyObject *self, PyObject *args) { return Py_False; }
+static PyObject* dmidecode_load(PyObject *self, PyObject *args) { return Py_False; }
+static PyObject* dmidecode_dev(PyObject *self, PyObject *args) {
+ return PyString_FromString(opt.devmem);
+}
+static PyObject* dmidecode_set_dev(PyObject *self, PyObject *args) {
+ opt.devmem = PyString_AS_STRING(args);
+ return Py_True;
+}
+
static PyObject* dmidecode_get_bios(PyObject *self, PyObject *args) { return dmidecode_get(self, "bios"); }
static PyObject* dmidecode_get_system(PyObject *self, PyObject *args) { return dmidecode_get(self, "system"); }
static PyObject* dmidecode_get_baseboard(PyObject *self, PyObject *args) { return dmidecode_get(self, "baseboard"); }
@@ -128,6 +140,11 @@ static PyObject* dmidecode_get_type(PyObject *self, PyObject *args) {
}
PyMethodDef DMIDataMethods[] = {
+ { "dump", dmidecode_dump, METH_NOARGS, "Dump dmidata to set file" },
+ { "load", dmidecode_load, METH_NOARGS, "Load dmidata from set file" },
+ { "dev", dmidecode_dev, METH_NOARGS, "Return the currently set memory device file" },
+ { "set_dev", dmidecode_set_dev, METH_O, "Set an alternative memory device file" },
+
{ "bios", dmidecode_get_bios, METH_VARARGS, "BIOS Data" },
{ "system", dmidecode_get_system, METH_VARARGS, "System Data" },
{ "baseboard", dmidecode_get_baseboard, METH_VARARGS, "Baseboard Data" },
@@ -143,5 +160,6 @@ PyMethodDef DMIDataMethods[] = {
PyMODINIT_FUNC initdmidecode(void) {
+ init();
(void) Py_InitModule("dmidecode", DMIDataMethods);
}