[U-Boot] [PATCH 01/10] microblaze: Fix in/out_be8/16/32 functions
Michal Simek
monstr at monstr.eu
Wed Aug 31 10:35:12 CEST 2011
Use inline functions instead of macros because
of typechecking.
Signed-off-by: Michal Simek <monstr at monstr.eu>
---
arch/microblaze/include/asm/io.h | 33 +++++++++++++++++++++++++++------
1 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
index 7e190d1..a35700e 100644
--- a/arch/microblaze/include/asm/io.h
+++ b/arch/microblaze/include/asm/io.h
@@ -46,14 +46,35 @@
#define outl(x, addr) ((void) writel (x, addr))
/* Some #definitions to keep strange Xilinx code happy */
-#define in_8(addr) readb (addr)
-#define in_be16(addr) readw (addr)
-#define in_be32(addr) readl (addr)
+extern inline int in_8(volatile unsigned char *addr)
+{
+ return readb(addr);
+}
+
+extern inline int in_be16(volatile unsigned short *addr)
+{
+ return readw(addr);
+}
-#define out_8(addr,x ) outb (x,addr)
-#define out_be16(addr,x ) outw (x,addr)
-#define out_be32(addr,x ) outl (x,addr)
+extern inline int in_be32(volatile unsigned int *addr)
+{
+ return readl(addr);
+}
+extern inline void out_8(volatile unsigned char *addr, char val)
+{
+ outb (val, addr);
+}
+
+extern inline void out_be16(volatile unsigned short *addr, short val)
+{
+ outw (val, addr);
+}
+
+extern inline void out_be32(volatile unsigned int *addr, int val)
+{
+ outl (val, addr);
+}
#define inb_p(port) inb((port))
#define outb_p(val, port) outb((val), (port))
--
1.5.5.6
More information about the U-Boot
mailing list