xref: /aosp_15_r20/external/coreboot/src/lib/memmove.c (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <string.h>
memmove(void * vdest,const void * vsrc,size_t count)4 void *memmove(void *vdest, const void *vsrc, size_t count)
5 {
6 	const char *src = vsrc;
7 	char *dest = vdest;
8 
9 	if (dest <= src) {
10 		while (count--)
11 			*dest++ = *src++;
12 	} else {
13 		src  += count - 1;
14 		dest += count - 1;
15 		while (count--)
16 			*dest-- = *src--;
17 	}
18 	return vdest;
19 }
20