Module Name: src
Committed By: jmcneill
Date: Thu Aug 23 19:01:22 UTC 2018
Modified Files:
src/sys/arch/evbarm/include: loadfile_machdep.h
Log Message:
Fix LOADADDR on aarch64 and use memmove for bcopy instead of memcpy
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/evbarm/include/loadfile_machdep.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/evbarm/include/loadfile_machdep.h
diff -u src/sys/arch/evbarm/include/loadfile_machdep.h:1.3 src/sys/arch/evbarm/include/loadfile_machdep.h:1.4
--- src/sys/arch/evbarm/include/loadfile_machdep.h:1.3 Tue Aug 21 20:13:13 2018
+++ src/sys/arch/evbarm/include/loadfile_machdep.h Thu Aug 23 19:01:22 2018
@@ -8,10 +8,14 @@
#define LOAD_KERNEL (LOAD_ALL & ~LOAD_TEXTA)
#define COUNT_KERNEL (COUNT_ALL & ~COUNT_TEXTA)
+#if defined(__aarch64__)
+#define LOADADDR(a) ((((u_long)(a)) + offset) & 0x3fffffffff)
+#else
#define LOADADDR(a) (((u_long)(a)))
+#endif
#define ALIGNENTRY(a) ((u_long)(a))
#define READ(f, b, c) read((f), (void*)LOADADDR(b), (c))
-#define BCOPY(s, d, c) memcpy((void*)LOADADDR(d), (void*)(s), (c))
+#define BCOPY(s, d, c) memmove((void*)LOADADDR(d), (void*)(s), (c))
#define BZERO(d, c) memset((void*)LOADADDR(d), 0, (c))
#define WARN(a) do { \
(void)printf a; \