1 #include <lib9.h> 2 3 /* for testing only */ 4 void* 5 memcpy(void *a1, void *a2, ulong n) 6 { 7 return memmove(a1, a2, n); 8 } 9 10 void* 11 memmove(void *a1, void *a2, ulong n) 12 { 13 int m = (int)n; 14 uchar *s, *d; 15 16 d = a1; 17 s = a2; 18 if(d > s){ 19 s += m; 20 d += m; 21 while(--m >= 0) 22 *--d = *--s; 23 } 24 else{ 25 while(--m >= 0) 26 *d++ = *s++; 27 } 28 return a1; 29 } 30