67
typedef void* (*pcilib_memcpy_routine_t)(void * dst, void const *src, size_t bytes);
68
static pcilib_memcpy_routine_t pcilib_memcpy_routines[4] = {
69
pcilib_memcpy8, NULL, pcilib_memcpy32, pcilib_memcpy64
72
void *pcilib_memcpy(void * dst, void const * src, uint8_t access, size_t n) {
73
size_t pos = 0, size = n * access;
74
pcilib_memcpy_routine_t routine;
76
assert((access)&&(access <= 8));
78
while (access >>= 1) ++pos;
79
routine = pcilib_memcpy_routines[pos];
81
return routine(dst, src, size);