1*1debfc3dSmrg /* Public domain. */ 2*1debfc3dSmrg #include <stddef.h> 3*1debfc3dSmrg 4*1debfc3dSmrg void * memmove(void * dest,const void * src,size_t len)5*1debfc3dSmrgmemmove (void *dest, const void *src, size_t len) 6*1debfc3dSmrg { 7*1debfc3dSmrg char *d = dest; 8*1debfc3dSmrg const char *s = src; 9*1debfc3dSmrg if (d < s) 10*1debfc3dSmrg while (len--) 11*1debfc3dSmrg *d++ = *s++; 12*1debfc3dSmrg else 13*1debfc3dSmrg { 14*1debfc3dSmrg char *lasts = s + (len-1); 15*1debfc3dSmrg char *lastd = d + (len-1); 16*1debfc3dSmrg while (len--) 17*1debfc3dSmrg *lastd-- = *lasts--; 18*1debfc3dSmrg } 19*1debfc3dSmrg return dest; 20*1debfc3dSmrg } 21