summaryrefslogtreecommitdiff
path: root/payloads/libpayload/include/arm64/arch/cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/include/arm64/arch/cache.h')
-rw-r--r--payloads/libpayload/include/arm64/arch/cache.h22
1 files changed, 7 insertions, 15 deletions
diff --git a/payloads/libpayload/include/arm64/arch/cache.h b/payloads/libpayload/include/arm64/arch/cache.h
index 2d3175e871..f03d09b9f9 100644
--- a/payloads/libpayload/include/arm64/arch/cache.h
+++ b/payloads/libpayload/include/arm64/arch/cache.h
@@ -70,24 +70,16 @@
/*
* Sync primitives
*/
-
/* data memory barrier */
-static inline void dmb(void)
-{
- asm volatile ("dmb sy" : : : "memory");
-}
-
+#define dmb_opt(opt) asm volatile ("dmb " #opt : : : "memory")
/* data sync barrier */
-static inline void dsb(void)
-{
- asm volatile ("dsb sy" : : : "memory");
-}
-
+#define dsb_opt(opt) asm volatile ("dsb " #opt : : : "memory")
/* instruction sync barrier */
-static inline void isb(void)
-{
- asm volatile ("isb" : : : "memory");
-}
+#define isb_opt(opt) asm volatile ("isb " #opt : : : "memory")
+
+#define dmb() dmb_opt(sy)
+#define dsb() dsb_opt(sy)
+#define isb() isb_opt()
/*
* Low-level TLB maintenance operations