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