diff options
author | zilio nicolas <nicolas.zilio@kit.edu> | 2015-06-12 19:08:55 +0200 |
---|---|---|
committer | zilio nicolas <nicolas.zilio@kit.edu> | 2015-06-12 19:08:55 +0200 |
commit | 51ec836689e0d9e2d27f2fa4579ff1088513dacf (patch) | |
tree | 617947170dd4fa735f4d5e213179e67343dd486e /pcilib | |
parent | 18e672c04c6b12d51b13f4cf32b9c197245407d6 (diff) | |
download | pcitool-51ec836689e0d9e2d27f2fa4579ff1088513dacf.tar.gz pcitool-51ec836689e0d9e2d27f2fa4579ff1088513dacf.tar.bz2 pcitool-51ec836689e0d9e2d27f2fa4579ff1088513dacf.tar.xz pcitool-51ec836689e0d9e2d27f2fa4579ff1088513dacf.zip |
some modifications
Diffstat (limited to 'pcilib')
-rw-r--r-- | pcilib/bank.h | 9 | ||||
-rw-r--r-- | pcilib/export.c | 3 | ||||
-rw-r--r-- | pcilib/model.h | 2 |
3 files changed, 11 insertions, 3 deletions
diff --git a/pcilib/bank.h b/pcilib/bank.h index 943c389..bc45ec4 100644 --- a/pcilib/bank.h +++ b/pcilib/bank.h @@ -2,6 +2,8 @@ #define _PCILIB_BANK_H #include <pcilib.h> +#include <libxml/tree.h> +#include <libxml/xpath.h> #define PCILIB_REGISTER_BANK_INVALID ((pcilib_register_bank_t)-1) #define PCILIB_REGISTER_BANK0 0 /**< First BANK to be used in the event engine */ @@ -13,6 +15,7 @@ #define PCILIB_REGISTER_PROTOCOL_INVALID ((pcilib_register_protocol_t)-1) #define PCILIB_REGISTER_PROTOCOL0 0 /**< First PROTOCOL address to be used in the event engine */ #define PCILIB_REGISTER_PROTOCOL_DEFAULT 64 /**< Default memmap based protocol */ +#define PCILIB_REGISTER_PROTOCOL_KERNEL 32 /**< Protocol with registers registered in kernel directly*/ #define PCILIB_REGISTER_PROTOCOL_DMA 96 /**< First PROTOCOL address to be used by DMA engines */ #define PCILIB_REGISTER_PROTOCOL_DYNAMIC 128 /**< First PROTOCOL address to be used by plugins */ @@ -28,7 +31,7 @@ typedef struct { pcilib_version_t version; pcilib_register_bank_context_t *(*init)(pcilib_t *ctx, pcilib_register_bank_t bank, const char *model, const void *args); /**< Optional API call to initialize bank context */ - void (*free)(pcilib_register_bank_context_t *ctx); /**< Optional API call to cleanup bank context */ + void (*free)(pcilib_register_bank_context_t *bank_ctx); /**< Optional API call to cleanup bank context */ int (*read)(pcilib_t *pcilib, pcilib_register_bank_context_t *ctx, pcilib_register_addr_t addr, pcilib_register_value_t *value); /**< Read from register, mandatory for RO/RW registers */ int (*write)(pcilib_t *pcilib, pcilib_register_bank_context_t *ctx, pcilib_register_addr_t addr, pcilib_register_value_t value); /**< Write to register, mandatory for WO/RW registers */ } pcilib_register_protocol_api_description_t; @@ -60,6 +63,7 @@ typedef struct { const char *format; /**< printf format for the registers, either %lu for decimal output or 0x%lx for hexdecimal */ const char *name; /**< short bank name */ const char *description; /**< longer bank description */ + xmlNodePtr xmlNode; /**<pointer to xmlNode of the bank in the file*/ } pcilib_register_bank_description_t; /** @@ -82,6 +86,9 @@ typedef struct { struct pcilib_register_bank_context_s { const pcilib_register_bank_description_t *bank; /**< Corresponding bank description */ const pcilib_register_protocol_api_description_t *api; /**< API functions */ + xmlNodeSetPtr banks_nodes; + void *bank_software_register_adress; + pcilib_t *ctx; }; diff --git a/pcilib/export.c b/pcilib/export.c index e442fc7..ed3b5bf 100644 --- a/pcilib/export.c +++ b/pcilib/export.c @@ -5,10 +5,11 @@ #include "export.h" #include "protocols/default.h" - +#include "protocols/software_registers.h" const pcilib_register_protocol_description_t pcilib_protocols[] = { { PCILIB_REGISTER_PROTOCOL_DEFAULT, &pcilib_default_protocol_api, NULL, NULL, "default", "" }, + { PCILIB_REGISTER_PROTOCOL_SOFTWARE_REGISTERS, &pcilib_register_software_register_protocol_api, NULL, NULL, "software_registers", "" }, { 0 } }; diff --git a/pcilib/model.h b/pcilib/model.h index ab55adc..b60ff3b 100644 --- a/pcilib/model.h +++ b/pcilib/model.h @@ -7,7 +7,6 @@ #include <pcilib/event.h> #include <pcilib/export.h> - typedef struct { const pcilib_version_t interface_version; @@ -24,6 +23,7 @@ typedef struct { const char *name; const char *description; + } pcilib_model_description_t; |