diff options
Diffstat (limited to 'src/mem/memswap.c')
-rw-r--r-- | src/mem/memswap.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/mem/memswap.c b/src/mem/memswap.c index 512c8c9..b6d30b1 100644 --- a/src/mem/memswap.c +++ b/src/mem/memswap.c @@ -6,4 +6,16 @@ #include <mem.h> -extern inline void calt_memswap(void *restrict ptr1, void *restrict ptr2, size_t size); +void calt_memswap(void *restrict ptr1, void *restrict ptr2, size_t size) { + if(ptr1 == ptr2){ + return; + } + unsigned char *p1 = ptr1; + unsigned char *p2 = ptr2; + while (size-- > 0) { + unsigned char temp = *p1; + *p1++ = *p2; + *p2++ = temp; + } +} + |