aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/std/memmove.c
diff options
context:
space:
mode:
authorEmulatedSeasons <89668582+EmulatedSeasons@users.noreply.github.com>2024-07-18 22:25:44 -0400
committerEmulatedSeasons <89668582+EmulatedSeasons@users.noreply.github.com>2024-09-03 14:07:04 -0400
commit8eda325ede02d3fc606a34f7fa3c4922b05a84e4 (patch)
tree881da3ba217871a002e6e79bdfc90149cc589e1d /kernel/std/memmove.c
parent82bcab74e6e0c581dcf4ac4d7997aec5c5e14aae (diff)
Remerged the std stuff into the kernel
Diffstat (limited to 'kernel/std/memmove.c')
-rw-r--r--kernel/std/memmove.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/kernel/std/memmove.c b/kernel/std/memmove.c
new file mode 100644
index 0000000..98c787f
--- /dev/null
+++ b/kernel/std/memmove.c
@@ -0,0 +1,14 @@
+#include <string.h>
+
+void* memmove(void* dstptr, const void* srcptr, size_t size) {
+ unsigned char* dst = (unsigned char*) dstptr;
+ const unsigned char* src = (const unsigned char*) srcptr;
+ if (dst < src) {
+ for (size_t i = 0; i < size; i++)
+ dst[i] = src[i];
+ } else {
+ for (size_t i = size; i != 0; i--)
+ dst[i-1] = src[i-1];
+ }
+ return dstptr;
+} \ No newline at end of file