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/bank.h | |
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/bank.h')
-rw-r--r-- | pcilib/bank.h | 9 |
1 files changed, 8 insertions, 1 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; }; |