ref: f801657f77f3923ec2388c25bdcb036c8019ba89
dir: /libkern/memmove.c/
#include <u.h> #include "kern.h" /* for testing only */ void* memcpy(void *a1, void *a2, ulong n) { return memmove(a1, a2, n); } void* memmove(void *a1, void *a2, ulong n) { int m = (int)n; uchar *s, *d; d = a1; s = a2; if(d > s){ s += m; d += m; while(--m >= 0) *--d = *--s; } else{ while(--m >= 0) *d++ = *s++; } return a1; }