summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2010-12-09 22:23:50 +0800
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2010-12-09 22:23:50 +0800
commit55dcf03512b06c209f0390d837f8bf36b45c7400 (patch)
treefbb328d65bdc3cd4ac61b1433137d14ebfa543cf
parentc89889df75c707b215f02ef55caaa6ea414d8bbc (diff)
memcpy operands are not supposed to overlap
* include/string.h (memmove): Add prototype. * i386/i386at/immc.c (immc_cnputc): Replace memcpy with memmove.
-rw-r--r--i386/i386at/immc.c2
-rw-r--r--include/string.h2
2 files changed, 3 insertions, 1 deletions
diff --git a/i386/i386at/immc.c b/i386/i386at/immc.c
index e457162..db64620 100644
--- a/i386/i386at/immc.c
+++ b/i386/i386at/immc.c
@@ -49,7 +49,7 @@ immc_cnputc(unsigned char c)
}
else if (c == '\n')
{
- memcpy(0xb8000, 0xb8000+80*2, 80*2*24);
+ memmove(0xb8000, 0xb8000+80*2, 80*2*24);
memset(0xb8000+80*2*24, 0, 80*2);
ofs = 0;
}
diff --git a/include/string.h b/include/string.h
index b630c04..8059bed 100644
--- a/include/string.h
+++ b/include/string.h
@@ -30,6 +30,8 @@
extern void *memcpy (void *dest, const void *src, size_t n);
+extern void *memmove (void *dest, const void *src, size_t n);
+
extern int *memcmp (const void *s1, const void *s2, size_t n);
extern void *memset (void *s, int c, size_t n);