$NetBSD$

--- src/m68k/ffi.c.orig	2009-12-29 15:22:26.000000000 +0000
+++ src/m68k/ffi.c
@@ -9,8 +9,13 @@
 
 #include <stdlib.h>
 #include <unistd.h>
-#include <sys/syscall.h>
-#include <asm/cachectl.h>
+#if !defined(__NetBSD__)
+  #include <sys/syscall.h>
+  #include <asm/cachectl.h>
+#else
+  #include <sys/types.h>
+  #include <m68k/sync_icache.h>
+#endif
 
 void ffi_call_SYSV (extended_cif *,
 		    unsigned, unsigned,
@@ -266,8 +271,12 @@ ffi_prep_closure_loc (ffi_closure* closu
   else
     *(void **)(closure->tramp + 8) = ffi_closure_SYSV;
 
-  syscall(SYS_cacheflush, codeloc, FLUSH_SCOPE_LINE,
-	  FLUSH_CACHE_BOTH, FFI_TRAMPOLINE_SIZE);
+  #if !defined(__NetBSD__)
+    syscall(SYS_cacheflush, codeloc, FLUSH_SCOPE_LINE,
+	    FLUSH_CACHE_BOTH, FFI_TRAMPOLINE_SIZE);
+  #else
+    m68k_sync_icache(codeloc, FFI_TRAMPOLINE_SIZE);
+  #endif
 
   closure->cif  = cif;
   closure->user_data = user_data;
