| /* |
| * linux/lib/string.c |
| * |
| * Copyright (C) 1991, 1992 Linus Torvalds |
| */ |
| |
| /* |
| * stupid library routines.. The optimized versions should generally be found |
| * as inline code in <asm-xx/string.h> |
| * |
| * These are buggy as well.. |
| * |
| * * Fri Jun 25 1999, Ingo Oeser <ioe@informatik.tu-chemnitz.de> |
| * - Added strsep() which will replace strtok() soon (because strsep() is |
| * reentrant and should be faster). Use only strsep() in new code, please. |
| */ |
| |
| #include <linux/types.h> |
| #include <linux/string.h> |
| #include <malloc.h> |
| #ifndef __HAVE_ARCH_MEMMOVE |
| /** |
| * memmove - Copy one area of memory to another |
| * @dest: Where to copy to |
| * @src: Where to copy from |
| * @count: The size of the area. |
| * |
| * Unlike memcpy(), memmove() copes with overlapping areas. |
| */ |
| void * memmove(void * dest,const void *src,size_t count) |
| { |
| char *tmp, *s; |
| |
| if (dest <= src) { |
| tmp = (char *) dest; |
| s = (char *) src; |
| while (count--) |
| *tmp++ = *s++; |
| } |
| else { |
| tmp = (char *) dest + count; |
| s = (char *) src + count; |
| while (count--) |
| *--tmp = *--s; |
| } |
| |
| return dest; |
| } |
| #endif |