aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Thoelke <andrew.thoelke@arm.com>2014-06-24 14:18:35 +0100
committerAndrew Thoelke <andrew.thoelke@arm.com>2014-06-24 14:30:23 +0100
commit5e11375398803a0e81003984f051ec436d0fbb46 (patch)
tree2c9d47c3e4fd82a7c9a9b6b9b59b8a6e52185863 /include
parent41cf7bdfd7114ee437d165974367a483636df76d (diff)
downloadtrusted-firmware-a-5e11375398803a0e81003984f051ec436d0fbb46.tar.gz
Inline the mmio accessor functions
Making the simple mmio_read_*() and mmio_write_*() functions inline saves 360 bytes of code in FVP release build. Fixes ARM-software/tf-issues#210 Change-Id: I65134f9069f3b2d8821d882daaa5fdfe16355e2f
Diffstat (limited to 'include')
-rw-r--r--include/lib/mmio.h33
1 files changed, 27 insertions, 6 deletions
diff --git a/include/lib/mmio.h b/include/lib/mmio.h
index 5d33c5977a..cb37a1c89c 100644
--- a/include/lib/mmio.h
+++ b/include/lib/mmio.h
@@ -33,13 +33,34 @@
#include <stdint.h>
-void mmio_write_8(uintptr_t addr, uint8_t value);
-uint8_t mmio_read_8(uintptr_t addr);
+static inline void mmio_write_8(uintptr_t addr, uint8_t value)
+{
+ *(volatile uint8_t*)addr = value;
+}
-void mmio_write_32(uintptr_t addr, uint32_t value);
-uint32_t mmio_read_32(uintptr_t addr);
+static inline uint8_t mmio_read_8(uintptr_t addr)
+{
+ return *(volatile uint8_t*)addr;
+}
-void mmio_write_64(uintptr_t addr, uint64_t value);
-uint64_t mmio_read_64(uintptr_t addr);
+static inline void mmio_write_32(uintptr_t addr, uint32_t value)
+{
+ *(volatile uint32_t*)addr = value;
+}
+
+static inline uint32_t mmio_read_32(uintptr_t addr)
+{
+ return *(volatile uint32_t*)addr;
+}
+
+static inline void mmio_write_64(uintptr_t addr, uint64_t value)
+{
+ *(volatile uint64_t*)addr = value;
+}
+
+static inline uint64_t mmio_read_64(uintptr_t addr)
+{
+ return *(volatile uint64_t*)addr;
+}
#endif /* __MMIO_H__ */