aboutsummaryrefslogtreecommitdiffstats
path: root/memory/memmove.c
blob: b3a2f089e97fc5a0749d2287ee6166f64dbdb95a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "memory.h"

void *memmove(void *restrict dest, void const *restrict src, size_t count)
{
	unsigned char *restrict destination = dest;
	unsigned char const *restrict source = src;
	if (destination < source)
		memcpy(destination, source, count);
	else
		for (size_t i = count; i-- > 0;)
			destination[i] = source[i];
	return destination;
}