1/* Normally compiler builtins are used, but sometimes the compiler calls out 2 of line code. Based on asm-i386/string.h. 3 */ 4#define _STRING_C 5#include <linux/string.h> 6#include <linux/module.h> 7 8#undef memmove 9void *memmove(void * dest,const void *src,size_t count) 10{ 11 if (dest < src) { 12 return memcpy(dest,src,count); 13 } else { 14 char *p = (char *) dest + count; 15 char *s = (char *) src + count; 16 while (count--) 17 *--p = *--s; 18 } 19 return dest; 20} 21EXPORT_SYMBOL(memmove); 22