From fa2a9850329ad5cf14db6b6cd7b217ca4927caba Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Tue, 22 Jan 2019 23:45:26 +0000 Subject: [PATCH] tiny68k: introduce memcpy32 --- Kernel/cpu-68000/cpu.h | 6 ++++++ Kernel/platform-tiny68k/libc.c | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/Kernel/cpu-68000/cpu.h b/Kernel/cpu-68000/cpu.h index 9e4cbac4..5069f11e 100644 --- a/Kernel/cpu-68000/cpu.h +++ b/Kernel/cpu-68000/cpu.h @@ -80,3 +80,9 @@ register struct u_data *udata_ptr asm ("a5"); #define __packed __attribute__((packed)) #define barrier() asm volatile("":::"memory") + +/* Memory helpers */ +/* This one doesn't yet work! */ +extern void copy_blocks(void *, void *, unsigned int); + +extern void *memcpy32(void *to, const void *from, size_t bytes); diff --git a/Kernel/platform-tiny68k/libc.c b/Kernel/platform-tiny68k/libc.c index 6b8ef845..f172e3b1 100644 --- a/Kernel/platform-tiny68k/libc.c +++ b/Kernel/platform-tiny68k/libc.c @@ -11,6 +11,16 @@ void *memcpy(void *d, const void *s, size_t sz) return d; } +void *memcpy32(void *d, const void *s, size_t sz) +{ + uint32_t *dp = d; + const uint32_t *sp = s; + sz >>= 2; + while(sz--) + *dp++ = *sp++; + return d; +} + void *memset(void *d, int c, size_t sz) { unsigned char *p = d; -- 2.34.1