2
#define _POSIX_C_SOURCE 200809L
11
#include <sys/ioctl.h>
13
#include <arpa/inet.h>
25
int pcilib_read_fifo(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr, uint8_t fifo_size, size_t n, void *buf) {
29
pcilib_detect_address(ctx, &bar, &addr, fifo_size);
30
data = pcilib_map_bar(ctx, bar);
32
for (i = 0; i < n; i++) {
33
pcilib_memcpy(buf + i * fifo_size, data + addr, fifo_size);
36
pcilib_unmap_bar(ctx, bar, data);
41
int pcilib_write_fifo(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr, uint8_t fifo_size, size_t n, void *buf) {
45
pcilib_detect_address(ctx, &bar, &addr, fifo_size);
46
data = pcilib_map_bar(ctx, bar);
48
for (i = 0; i < n; i++) {
49
pcilib_memcpy(data + addr, buf + i * fifo_size, fifo_size);
52
pcilib_unmap_bar(ctx, bar, data);