summaryrefslogtreecommitdiffstats
path: root/pcilib/pci.c
diff options
context:
space:
mode:
authorzilio nicolas <nicolas.zilio@kit.edu>2015-07-07 14:03:39 +0200
committerzilio nicolas <nicolas.zilio@kit.edu>2015-07-07 14:03:39 +0200
commit5a7bcf11b8e3168900a75e7cbf3b1e18f424d271 (patch)
tree3a7ed810b913ed6a6adf50f78dce57f1c3e5dd7f /pcilib/pci.c
parentc4f209458c5caa00f8d67033224458c78c374adc (diff)
downloadpcitool-5a7bcf11b8e3168900a75e7cbf3b1e18f424d271.tar.gz
pcitool-5a7bcf11b8e3168900a75e7cbf3b1e18f424d271.tar.bz2
pcitool-5a7bcf11b8e3168900a75e7cbf3b1e18f424d271.tar.xz
pcitool-5a7bcf11b8e3168900a75e7cbf3b1e18f424d271.zip
some modif
Diffstat (limited to 'pcilib/pci.c')
-rw-r--r--pcilib/pci.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/pcilib/pci.c b/pcilib/pci.c
index 5312922..76bd59f 100644
--- a/pcilib/pci.c
+++ b/pcilib/pci.c
@@ -294,6 +294,7 @@ int pcilib_map_data_space(pcilib_t *ctx, uintptr_t addr) {
char *pcilib_resolve_register_address(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr) {
if (bar == PCILIB_BAR_DETECT) {
+ printf("bar = PCILIB_BAR_DETECT\n");
// First checking the default register bar
size_t offset = addr - ctx->board_info.bar_start[ctx->reg_bar];
if ((addr > ctx->board_info.bar_start[ctx->reg_bar])&&(offset < ctx->board_info.bar_length[ctx->reg_bar])) {
@@ -308,6 +309,7 @@ char *pcilib_resolve_register_address(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t
// Otherwise trying to detect
bar = pcilib_detect_bar(ctx, addr, 1);
if (bar != PCILIB_BAR_INVALID) {
+ printf("bar pas ainvalid\n");
size_t offset = addr - ctx->board_info.bar_start[bar];
if ((offset < ctx->board_info.bar_length[bar])&&(ctx->bar_space[bar])) {
if (!ctx->bar_space[bar]) {
@@ -318,16 +320,21 @@ char *pcilib_resolve_register_address(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t
}
}
} else {
+ printf("bar internal :%i\n",bar);
+ // printf("bar invalid\n");
if (!ctx->bar_space[bar]) {
pcilib_error("The requested bar (%i) is not mapped", bar);
return NULL;
}
if (addr < ctx->board_info.bar_length[bar]) {
+ printf("path1\n");
+ // printf("apres: %s\n",ctx->bar_space[bar] + addr);
return ctx->bar_space[bar] + addr + (ctx->board_info.bar_start[bar] & ctx->page_mask);
}
if ((addr >= ctx->board_info.bar_start[bar])&&(addr < (ctx->board_info.bar_start[bar] + ctx->board_info.bar_length[ctx->reg_bar]))) {
+ printf("path2\n");
return ctx->bar_space[bar] + (addr - ctx->board_info.bar_start[bar]) + (ctx->board_info.bar_start[bar] & ctx->page_mask);
}
}