ref: f8935b5778397074d41a48205e5c7f87d7b531fe
dir: /libkern/memmove.c/
#include <lib9.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; }