summaryrefslogtreecommitdiffstats
path: root/pcilib/pci.c
diff options
context:
space:
mode:
authornicolas.zilio@hotmail.fr <>2015-09-14 18:18:00 +0200
committernicolas.zilio@hotmail.fr <>2015-09-14 18:18:00 +0200
commitde589562bd91cc60ee3e2d739bdd7a03063d38f7 (patch)
tree0ceb314dd240c1780d7cd0adf4fad99d69445ba3 /pcilib/pci.c
parenta1bf5e300e2345b642d0a13e7e26d22c56156e47 (diff)
downloadpcitool-de589562bd91cc60ee3e2d739bdd7a03063d38f7.tar.gz
pcitool-de589562bd91cc60ee3e2d739bdd7a03063d38f7.tar.bz2
pcitool-de589562bd91cc60ee3e2d739bdd7a03063d38f7.tar.xz
pcitool-de589562bd91cc60ee3e2d739bdd7a03063d38f7.zip
first try with pcilib_operation_t
Diffstat (limited to 'pcilib/pci.c')
-rw-r--r--pcilib/pci.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/pcilib/pci.c b/pcilib/pci.c
index 2742240..946b003 100644
--- a/pcilib/pci.c
+++ b/pcilib/pci.c
@@ -140,16 +140,16 @@ pcilib_t *pcilib_open(const char *device, const char *model) {
ctx->alloc_reg = PCILIB_DEFAULT_REGISTER_SPACE;
ctx->alloc_formula_views=PCILIB_DEFAULT_VIEW_SPACE;
+ ctx->alloc_views=PCILIB_DEFAULT_VIEW_SPACE;
ctx->alloc_enum_views=PCILIB_DEFAULT_VIEW_SPACE;
ctx->registers = (pcilib_register_description_t *)malloc(PCILIB_DEFAULT_REGISTER_SPACE * sizeof(pcilib_register_description_t));
ctx->register_ctx = (pcilib_register_context_t *)malloc(PCILIB_DEFAULT_REGISTER_SPACE * sizeof(pcilib_register_context_t));
ctx->enum_views = (pcilib_view_enum2_t *)malloc(PCILIB_DEFAULT_VIEW_SPACE * sizeof(pcilib_view_enum2_t));
ctx->formula_views = (pcilib_view_formula_t*)malloc(PCILIB_DEFAULT_VIEW_SPACE * sizeof(pcilib_view_formula_t));
+ ctx->views = (pcilib_view_t*)malloc(PCILIB_DEFAULT_VIEW_SPACE * sizeof(pcilib_view_t));
ctx->alloc_units=PCILIB_DEFAULT_UNIT_SPACE;
ctx->units=(pcilib_unit_t*)malloc(PCILIB_DEFAULT_UNIT_SPACE * sizeof(pcilib_unit_t));
-
-
if ((!ctx->registers)||(!ctx->register_ctx)) {
pcilib_error("Error allocating memory for register model");
pcilib_close(ctx);
@@ -157,7 +157,7 @@ pcilib_t *pcilib_open(const char *device, const char *model) {
}
/* i think we need a better error handling here, because, it's not that a problem to not have views working, but how to block the use if the memory here was not good?, and we could have only one type of views that is working*/
- if((!ctx->enum_views)||(!ctx->formula_views) || (!ctx->units)){
+ if((!ctx->enum_views)||(!ctx->formula_views) || (!ctx->units) || !(ctx->views)){
pcilib_warning("Error allocating memory for views");
}
@@ -172,6 +172,7 @@ pcilib_t *pcilib_open(const char *device, const char *model) {
memset(ctx->enum_views,0,sizeof(pcilib_view_enum2_t));
memset(ctx->formula_views,0,sizeof(pcilib_view_formula_t));
memset(ctx->units,0,sizeof(pcilib_unit_t));
+ memset(ctx->views,0,sizeof(pcilib_view_t));
for (i = 0; pcilib_protocols[i].api; i++);
memcpy(ctx->protocols, pcilib_protocols, i * sizeof(pcilib_register_protocol_description_t));