34 lines
930 B
Text
34 lines
930 B
Text
https://svnweb.freebsd.org/ports/head/devel/libffi/files/patch-src__arm__ffi.c?revision=337118&view=markup
|
|
|
|
Index: src/arm/ffi.c
|
|
--- src/arm/ffi.c.orig
|
|
+++ src/arm/ffi.c
|
|
@@ -68,6 +68,11 @@ extern unsigned char ffi_arm_trampoline[12] FFI_HIDDEN
|
|
#include <sys/mman.h>
|
|
#endif
|
|
|
|
+#ifdef __arm__
|
|
+#include <machine/sysarch.h>
|
|
+#include <stdint.h>
|
|
+#endif
|
|
+
|
|
/* Forward declares. */
|
|
static int vfp_type_p (const ffi_type *);
|
|
static void layout_vfp_args (ffi_cif *);
|
|
@@ -625,6 +630,16 @@ ffi_prep_closure_loc (ffi_closure * closure,
|
|
config[0] = closure;
|
|
config[1] = closure_func;
|
|
#else
|
|
+
|
|
+#ifdef __arm__
|
|
+#define __clear_cache(start, end) do { \
|
|
+ struct arm_sync_icache_args ua; \
|
|
+ \
|
|
+ ua.addr = (uintptr_t)(start); \
|
|
+ ua.len = (char *)(end) - (char *)start; \
|
|
+ sysarch(ARM_SYNC_ICACHE, &ua); \
|
|
+ } while (0);
|
|
+#endif
|
|
|
|
# if defined(FFI_EXEC_STATIC_TRAMP)
|
|
if (ffi_tramp_is_present(closure))
|