diff options
Diffstat (limited to 'kernel/lib/memmovev.c')
-rw-r--r-- | kernel/lib/memmovev.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/kernel/lib/memmovev.c b/kernel/lib/memmovev.c new file mode 100644 index 0000000..56684a5 --- /dev/null +++ b/kernel/lib/memmovev.c @@ -0,0 +1,20 @@ +#include <lib.h> + +volatile void *memmovev(volatile void *dest, const volatile void *src, size_t n) +{ + volatile char *d = dest; + volatile const char *s = src; + + if (d == s) + return d; + + if (d < s) { + for (; n; n--) + *d++ = *s++; + } else { + while (n) + n--, d[n] = s[n]; + } + + return dest; +} |