bzr branch
http://suren.me/webbzr/alps/pcitool
7.1.5
by Suren A. Chilingaryan
Support for FPGA registers |
1 |
#include <sys/time.h> |
2 |
#include <arpa/inet.h> |
|
3 |
#include <assert.h> |
|
4 |
||
5 |
#include "tools.h" |
|
6 |
#include "default.h" |
|
7 |
#include "error.h" |
|
8 |
||
9 |
#define default_datacpy(dst, src, access, bank) pcilib_datacpy(dst, src, access, 1, bank->raw_endianess)
|
|
10 |
||
54
by Suren A. Chilingaryan
Support dynamic registers, support register offsets and multiregisters (bitmasks), list NWL DMA registers |
11 |
int pcilib_default_read(pcilib_t *ctx, pcilib_register_bank_description_t *bank, pcilib_register_addr_t addr, pcilib_register_value_t *value) { |
7.1.5
by Suren A. Chilingaryan
Support for FPGA registers |
12 |
int err; |
13 |
||
14 |
char *ptr; |
|
15 |
pcilib_register_value_t val = 0; |
|
16 |
int access = bank->access / 8; |
|
17 |
||
116
by Suren A. Chilingaryan
Fix multiword register reads in a proper way |
18 |
ptr = pcilib_resolve_register_address(ctx, bank->bar, bank->read_addr + addr); |
7.1.5
by Suren A. Chilingaryan
Support for FPGA registers |
19 |
default_datacpy(&val, ptr, access, bank); |
20 |
||
54
by Suren A. Chilingaryan
Support dynamic registers, support register offsets and multiregisters (bitmasks), list NWL DMA registers |
21 |
// *value = val&BIT_MASK(bits);
|
22 |
*value = val; |
|
7.1.5
by Suren A. Chilingaryan
Support for FPGA registers |
23 |
|
24 |
return 0; |
|
25 |
}
|
|
26 |
||
27 |
||
54
by Suren A. Chilingaryan
Support dynamic registers, support register offsets and multiregisters (bitmasks), list NWL DMA registers |
28 |
int pcilib_default_write(pcilib_t *ctx, pcilib_register_bank_description_t *bank, pcilib_register_addr_t addr, pcilib_register_value_t value) { |
7.1.5
by Suren A. Chilingaryan
Support for FPGA registers |
29 |
int err; |
30 |
||
31 |
char *ptr; |
|
32 |
int access = bank->access / 8; |
|
33 |
||
116
by Suren A. Chilingaryan
Fix multiword register reads in a proper way |
34 |
ptr = pcilib_resolve_register_address(ctx, bank->bar, bank->write_addr + addr); |
7.1.5
by Suren A. Chilingaryan
Support for FPGA registers |
35 |
default_datacpy(ptr, &value, access, bank); |
36 |
||
37 |
return 0; |
|
38 |
}
|