summaryrefslogtreecommitdiff
path: root/kernel/lib/memmove.c
blob: b413c1ffecd03cc000e1b25d606037a7a2f6a926 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <lib.h>

void *memmove(void *dest, const void *src, register 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;
}