]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libc/port/memmove.c
libc: change usize to 64-bit for amd64 and arm64, make memory(2) functions use usize
[plan9front.git] / sys / src / libc / port / memmove.c
1 #include        <u.h>
2 #include        <libc.h>
3
4 void*
5 memmove(void *a1, void *a2, usize n)
6 {
7         char *s1, *s2;
8
9         s1 = a1;
10         s2 = a2;
11         if((s2 < s1) && (s2+n > s1))
12                 goto back;
13         while(n > 0) {
14                 *s1++ = *s2++;
15                 n--;
16         }
17         return a1;
18
19 back:
20         s1 += n;
21         s2 += n;
22         while(n > 0) {
23                 *--s1 = *--s2;
24                 n--;
25         }
26         return a1;
27 }
28
29 void*
30 memcpy(void *a1, void *a2, usize n)
31 {
32         return memmove(a1, a2, n);
33 }