blob: fd75135788a3cd584265728ce5efd9b97538cc40 [file] [log] [blame]
Eric Biederman5cd81732004-03-11 15:01:31 +00001#include <string.h>
2void *memmove(void *vdest, const void *vsrc, size_t count)
3{
4 const char *src = vsrc;
5 char *dest = vdest;
Eric Biederman5cd81732004-03-11 15:01:31 +00006
7 if (dest <= src) {
Lee Leahy2f919ec2017-03-08 17:37:06 -08008 while (count--)
Eric Biederman5cd81732004-03-11 15:01:31 +00009 *dest++ = *src++;
Eric Biederman5cd81732004-03-11 15:01:31 +000010 } else {
11 src += count - 1;
12 dest += count - 1;
Lee Leahy45fde702017-03-08 18:02:24 -080013 while (count--)
Eric Biederman5cd81732004-03-11 15:01:31 +000014 *dest-- = *src--;
Eric Biederman5cd81732004-03-11 15:01:31 +000015 }
16 return vdest;
17}