summaryrefslogtreecommitdiff
path: root/emu/NetBSD/segflush-arm.c
diff options
context:
space:
mode:
authorValery Ushakov <uwe@stderr.spb.ru>2021-03-07 03:19:12 +0000
committerCharles Forsyth <charles.forsyth@gmail.com>2021-03-07 03:19:12 +0000
commit98799e61445323e9022b62346ea988fb465452be (patch)
tree0601a5b1036cee45f15f4da3e56ea0ad4f4b1b51 /emu/NetBSD/segflush-arm.c
parent29b38a8cb898e73e6bb95476d5b705a2c79e8dcd (diff)
parente273317811820976dda632b0893960646d6e1119 (diff)
Merged in feature/NetBSD/arm (pull request #13)
NetBSD/arm support Approved-by: Charles Forsyth
Diffstat (limited to 'emu/NetBSD/segflush-arm.c')
-rw-r--r--emu/NetBSD/segflush-arm.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/emu/NetBSD/segflush-arm.c b/emu/NetBSD/segflush-arm.c
new file mode 100644
index 00000000..a03b438b
--- /dev/null
+++ b/emu/NetBSD/segflush-arm.c
@@ -0,0 +1,19 @@
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <machine/sysarch.h>
+
+#include "dat.h"
+
+
+int
+segflush(void *a, ulong n)
+{
+ struct arm_sync_icache_args args;
+
+ mprotect(a, (size_t)n, PROT_READ | PROT_WRITE | PROT_EXEC);
+
+ args.addr = (uintptr_t)a;
+ args.len = (size_t)n;
+ sysarch(ARM_SYNC_ICACHE, (void *)&args);
+ return 0;
+}