summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndoni Morales Alastruey <ylatuya@gmail.com>2013-04-25 17:09:22 +0200
committerAndoni Morales Alastruey <ylatuya@gmail.com>2013-04-25 17:14:32 +0200
commitbe0775c2e7e585f82b87bdc258df0b23ebd94398 (patch)
tree5d1583e06f63b2da21ed1217fda8ac9e293ad936
parent8e1d62c2963251189441f39a4db8fd176dfe7863 (diff)
orc: fix cache flush for iOS
Apple does not provide an implementation of __clear_cache in ARM but sys_icache_invalidate can be used instead review-by: Sebastian Dröge
-rw-r--r--orc/orcarm.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/orc/orcarm.c b/orc/orcarm.c
index d66e55f..3622ac3 100644
--- a/orc/orcarm.c
+++ b/orc/orcarm.c
@@ -14,6 +14,12 @@
#include <orc/orcarm.h>
#include <orc/orcutils.h>
+#ifdef HAVE_ARM
+#if defined(__APPLE__)
+#include <libkern/OSCacheControl.h>
+#endif
+#endif
+
/**
* SECTION:orcarm
* @title: ARM
@@ -724,8 +730,12 @@ void
orc_arm_flush_cache (OrcCode *code)
{
#ifdef HAVE_ARM
+#ifdef __APPLE__
+ sys_icache_invalidate(code->code, code->code_size);
+#else
__clear_cache (code->code, code->code + code->code_size);
#endif
+#endif
}
void