summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVasilii Chernov <vchernov@inr.ru>2016-02-25 09:22:31 +0100
committerVasilii Chernov <vchernov@inr.ru>2016-02-25 09:22:31 +0100
commited7a7ff66c64cc2e164070865306e7d79652063a (patch)
tree748bbb139a3cfe542a2662fe293f9edf3e4ebc00
parentb0a034e6ef4a958235a56ebde0831c0f30a84d30 (diff)
downloadpcitool-ed7a7ff66c64cc2e164070865306e7d79652063a.tar.gz
pcitool-ed7a7ff66c64cc2e164070865306e7d79652063a.tar.bz2
pcitool-ed7a7ff66c64cc2e164070865306e7d79652063a.tar.xz
pcitool-ed7a7ff66c64cc2e164070865306e7d79652063a.zip
Set value description content to NULL in pcilib_xml_parse_value_name
-rw-r--r--pcilib/xml.c2
-rw-r--r--pywrap/pcipywrap.c15
-rw-r--r--pywrap/test_pcipywrap.py14
3 files changed, 19 insertions, 12 deletions
diff --git a/pcilib/xml.c b/pcilib/xml.c
index fd12636..0463a40 100644
--- a/pcilib/xml.c
+++ b/pcilib/xml.c
@@ -615,6 +615,8 @@ static int pcilib_xml_parse_value_name(pcilib_t *ctx, xmlXPathContextPtr xpath,
int min_set = 0, max_set = 0;
pcilib_register_value_t val;
+
+ memset(desc, 0, sizeof(pcilib_register_value_name_t));
for (cur = node->properties; cur != NULL; cur = cur->next) {
if(!cur->children) continue;
diff --git a/pywrap/pcipywrap.c b/pywrap/pcipywrap.c
index fe53966..64e059a 100644
--- a/pywrap/pcipywrap.c
+++ b/pywrap/pcipywrap.c
@@ -232,6 +232,7 @@ PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_regist
PyString_FromString("bank"),
PyString_FromString(listItem.bank));
+
//serialize modes
PyObject* modes = PyList_New(0);
@@ -278,8 +279,9 @@ PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_regist
if(listItem.values)
{
- PyObject* values = PyList_New(0);
+ PyObject* values = PyList_New(0);
+
for (int j = 0; listItem.values[j].name; j++)
{
PyObject* valuesItem = PyDict_New();
@@ -301,12 +303,13 @@ PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_regist
pcilib_pydict_set_item(valuesItem,
PyString_FromString("name"),
PyString_FromString(listItem.values[j].name));
-
if(listItem.values[j].description)
+ {
pcilib_pydict_set_item(valuesItem,
PyString_FromString("description"),
PyString_FromString(listItem.values[j].description));
-
+
+ }
pcilib_pylist_append(values, valuesItem);
}
@@ -316,6 +319,7 @@ PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_regist
}
return pylistItem;
+
}
Pcipywrap *new_Pcipywrap(const char* fpga_device, const char* model)
@@ -456,11 +460,12 @@ PyObject* Pcipywrap_get_registers_list(Pcipywrap *self, const char *bank)
{
pcilib_register_info_t *list = pcilib_get_register_list(self->ctx, bank, PCILIB_LIST_FLAGS_DEFAULT);
PyObject* pyList = PyList_New(0);
- for(int i = 0; i < 10/*((pcilib_t*)self->ctx)->num_reg*/; i++)
+ for(int i = 0; i < ((pcilib_t*)self->ctx)->num_reg; i++)
{
//serialize item attributes
PyObject* pylistItem = pcilib_convert_register_info_to_pyobject(self->ctx, list[i]);
pcilib_pylist_append(pyList, pylistItem);
+ //Py_DECREF(pylistItem);
}
pcilib_free_register_info(self->ctx, list);
return pyList;
@@ -544,7 +549,7 @@ void Pcipywrap_unlock_global(Pcipywrap *self)
PyObject* Pcipywrap_lock(Pcipywrap *self, const char *lock_id)
{
pcilib_lock_t* lock = pcilib_get_lock(self->ctx,
- PCILIB_LOCK_FLAG_PERSISTENT,
+ PCILIB_LOCK_FLAGS_DEFAULT,
lock_id);
if(!lock)
{
diff --git a/pywrap/test_pcipywrap.py b/pywrap/test_pcipywrap.py
index d736639..91780ec 100644
--- a/pywrap/test_pcipywrap.py
+++ b/pywrap/test_pcipywrap.py
@@ -84,13 +84,13 @@ class test_pcipywrap():
while(1):
val = random.randint(0, 8096)
self.pcilib = pcipywrap.Pcipywrap(self.device, self.model)
- #print self.pcilib.get_property_list(self.branch)
- #print self.pcilib.get_register_info(self.register)
- #print self.pcilib.get_registers_list();
- #print self.pcilib.read_register(self.register)
- #print self.pcilib.write_register(val, self.register)
- #print self.pcilib.get_property(self.prop)
- #print self.pcilib.set_property(val, self.prop)
+ print self.pcilib.get_property_list(self.branch)
+ print self.pcilib.get_register_info(self.register)
+ print self.pcilib.get_registers_list();
+ print self.pcilib.read_register(self.register)
+ print self.pcilib.write_register(val, self.register)
+ print self.pcilib.get_property(self.prop)
+ print self.pcilib.set_property(val, self.prop)
except KeyboardInterrupt:
print 'testing done'
pass