mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
e940659788
After the patch: total: 0 errors, 0 warnings, 21 lines checked no code changed: arch/x86/lib/memmove_64.o: text data bss dec hex filename 116 0 0 116 74 memmove_64.o.before 116 0 0 116 74 memmove_64.o.after md5: 2d6b0951cafb86a11a222cdd70f6104f memmove_64.o.before.asm 2d6b0951cafb86a11a222cdd70f6104f memmove_64.o.after.asm Signed-off-by: Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
21 lines
469 B
C
21 lines
469 B
C
/* Normally compiler builtins are used, but sometimes the compiler calls out
|
|
of line code. Based on asm-i386/string.h.
|
|
*/
|
|
#define _STRING_C
|
|
#include <linux/string.h>
|
|
#include <linux/module.h>
|
|
|
|
#undef memmove
|
|
void *memmove(void *dest, const void *src, size_t count)
|
|
{
|
|
if (dest < src) {
|
|
return memcpy(dest, src, count);
|
|
} else {
|
|
char *p = dest + count;
|
|
const char *s = src + count;
|
|
while (count--)
|
|
*--p = *--s;
|
|
}
|
|
return dest;
|
|
}
|
|
EXPORT_SYMBOL(memmove);
|