diff options
Diffstat (limited to 'lib/memmovev.c')
-rw-r--r-- | lib/memmovev.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/memmovev.c b/lib/memmovev.c new file mode 100644 index 0000000..d2fc683 --- /dev/null +++ b/lib/memmovev.c @@ -0,0 +1,20 @@ +#include <string.h> + +void *memmovev(volatile void *dest, const volatile void *src, size_t n) +{ + char *d = dest; + 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; +} |