326
int pcilib_read(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr, size_t size, void *buf) {
327
int pcilib_read(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr, uint8_t access, size_t n, void *buf) {
329
pcilib_detect_address(ctx, &bar, &addr, size);
330
pcilib_detect_address(ctx, &bar, &addr, access * n);
330
331
data = pcilib_map_bar(ctx, bar);
332
pcilib_memcpy(buf, data + addr, size);
333
pcilib_memcpy(buf, data + addr, access, n);
334
335
pcilib_unmap_bar(ctx, bar, data);
339
int pcilib_write(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr, size_t size, void *buf) {
340
int pcilib_write(pcilib_t *ctx, pcilib_bar_t bar, uintptr_t addr, uint8_t access, size_t n, void *buf) {
342
pcilib_detect_address(ctx, &bar, &addr, size);
343
pcilib_detect_address(ctx, &bar, &addr, access * n);
343
344
data = pcilib_map_bar(ctx, bar);
345
pcilib_memcpy(data + addr, buf, size);
346
pcilib_memcpy(data + addr, buf, access, n);
347
348
pcilib_unmap_bar(ctx, bar, data);