diff options
author | Suren A. Chilingaryan <csa@suren.me> | 2015-11-20 18:26:29 +0100 |
---|---|---|
committer | Suren A. Chilingaryan <csa@suren.me> | 2015-11-20 18:26:29 +0100 |
commit | bba9c619c79175b58359116b52a889e30a632d07 (patch) | |
tree | 6da3898d50880e96f2afa5d5139bd16263fccf42 /pcilib/bar.c | |
parent | fe5bca8604e8c381d3fe2cce3073dd6602d016d1 (diff) | |
download | pcitool-bba9c619c79175b58359116b52a889e30a632d07.tar.gz pcitool-bba9c619c79175b58359116b52a889e30a632d07.tar.bz2 pcitool-bba9c619c79175b58359116b52a889e30a632d07.tar.xz pcitool-bba9c619c79175b58359116b52a889e30a632d07.zip |
64-bit access to BAR memory
Diffstat (limited to 'pcilib/bar.c')
-rw-r--r-- | pcilib/bar.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/pcilib/bar.c b/pcilib/bar.c index 6d6cd6d..85c0e12 100644 --- a/pcilib/bar.c +++ b/pcilib/bar.c @@ -119,6 +119,7 @@ void *pcilib_map_bar(pcilib_t *ctx, pcilib_bar_t bar) { return NULL; } + ctx->bar_space[bar] = res; return res; } @@ -323,26 +324,26 @@ const pcilib_bar_info_t *pcilib_get_bar_info(pcilib_t *ctx, pcilib_bar_t bar) { return NULL; } -int pcilib_read(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr, size_t size, void *buf) { +int pcilib_read(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr, uint8_t access, size_t n, void *buf) { void *data; - pcilib_detect_address(ctx, &bar, &addr, size); + pcilib_detect_address(ctx, &bar, &addr, access * n); data = pcilib_map_bar(ctx, bar); - pcilib_memcpy(buf, data + addr, size); + pcilib_memcpy(buf, data + addr, access, n); pcilib_unmap_bar(ctx, bar, data); return 0; } -int pcilib_write(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr, size_t size, void *buf) { +int pcilib_write(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr, uint8_t access, size_t n, void *buf) { void *data; - pcilib_detect_address(ctx, &bar, &addr, size); + pcilib_detect_address(ctx, &bar, &addr, access * n); data = pcilib_map_bar(ctx, bar); - pcilib_memcpy(data + addr, buf, size); + pcilib_memcpy(data + addr, buf, access, n); pcilib_unmap_bar(ctx, bar, data); |