| * Copyright (C) 2011 Tobias Klauser <tklauser@distanz.ch> |
| * Copyright (C) 2004 Microtronix Datacom Ltd |
| * This file is subject to the terms and conditions of the GNU General Public |
| * License. See the file "COPYING" in the main directory of this archive |
| #include <linux/string.h> |
| void *memmove(void *d, const void *s, size_t count) |
| if ((count < 8) || ((dst ^ src) & 3)) |
| *(char *)dst++ = *(char *)src++; |
| *(short *)dst = *(short *)src; |
| *(long *)dst = *(long *)src; |
| *(char *)dst++ = *(char *)src++; |
| dst = (unsigned long) d + count; |
| src = (unsigned long) s + count; |
| if ((count < 8) || ((dst ^ src) & 3)) |
| *(char *)dst = *(char *)src; |
| *(short *)dst = *(short *)src; |
| *(long *)dst = *(long *)src; |
| *(char *)dst = *(char *)src; |