aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/arm
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-12-18 23:40:50 +0000
committerUlrich Drepper <drepper@redhat.com>1999-12-18 23:40:50 +0000
commit9d1306dd216960a60dfb951c1385bf05b7a20512 (patch)
treeba9f30eccc77cddee93b7063f8b4c49b53e15971 /sysdeps/arm
parentbaa41915ea44a3de3ac8e0f1daa316a38da98be7 (diff)
downloadglibc-9d1306dd216960a60dfb951c1385bf05b7a20512.tar
glibc-9d1306dd216960a60dfb951c1385bf05b7a20512.tar.gz
glibc-9d1306dd216960a60dfb951c1385bf05b7a20512.tar.bz2
glibc-9d1306dd216960a60dfb951c1385bf05b7a20512.zip
(CLEAR_CACHE): New macro to force a cache flush.
Diffstat (limited to 'sysdeps/arm')
-rw-r--r--sysdeps/arm/dl-machine.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
index 2e6faf5d51..de2d0babf5 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -32,6 +32,14 @@
&& VALID_ELF_OSABI (hdr[EI_OSABI]) \
&& VALID_ELF_ABIVERSION (hdr[EI_ABIVERSION])
+#define CLEAR_CACHE(BEG,END) \
+{ \
+ register unsigned long _beg __asm ("a1") = (unsigned long)(BEG); \
+ register unsigned long _end __asm ("a2") = (unsigned long)((END) - (BEG));\
+ register unsigned long _flg __asm ("a3") = 0; \
+ __asm __volatile ("swi 0x9f0002"); \
+}
+
/* Return nonzero iff E_MACHINE is compatible with the running host. */
static inline int __attribute__ ((unused))
elf_machine_matches_host (Elf32_Half e_machine)