summaryrefslogtreecommitdiffstats
path: root/bsps
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2021-02-15 12:01:57 -1000
committerChris Johns <chrisj@rtems.org>2021-02-16 09:40:15 +1100
commit6e3c6e044e17286b500bcbba42abe2d0777327a7 (patch)
tree6bda3e5a83a363a306fdc289052d860640d3b29c /bsps
parentpowerpc/shared: Fix warnings in i8259 PIC code. (diff)
downloadrtems-6e3c6e044e17286b500bcbba42abe2d0777327a7.tar.bz2
powerpc/io: Make [out/in] le and be calls conditional
- These calls clash with the Linux IO header in LibBSD. Making these conditional here means BSPs build and the imported Linux header is untouched. Updates #4245
Diffstat (limited to 'bsps')
-rw-r--r--bsps/powerpc/include/libcpu/io.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/bsps/powerpc/include/libcpu/io.h b/bsps/powerpc/include/libcpu/io.h
index 521c97801d..c4e529f4d5 100644
--- a/bsps/powerpc/include/libcpu/io.h
+++ b/bsps/powerpc/include/libcpu/io.h
@@ -107,6 +107,7 @@ static inline void out_be16(volatile uint16_t *addr, uint16_t val)
__asm__ __volatile__("sth%U0%X0 %1,%0; eieio" : "=m" (*addr) : "r" (val));
}
+#ifndef in_le32
static inline uint32_t in_le32(const volatile uint32_t *addr)
{
uint32_t ret;
@@ -115,7 +116,9 @@ static inline uint32_t in_le32(const volatile uint32_t *addr)
"r" (addr), "m" (*addr));
return ret;
}
+#endif
+#ifndef in_be32
static inline uint32_t in_be32(const volatile uint32_t *addr)
{
uint32_t ret;
@@ -123,17 +126,22 @@ static inline uint32_t in_be32(const volatile uint32_t *addr)
__asm__ __volatile__("lwz%U1%X1 %0,%1; eieio" : "=r" (ret) : "m" (*addr));
return ret;
}
+#endif
+#ifndef out_le32
static inline void out_le32(volatile uint32_t *addr, uint32_t val)
{
__asm__ __volatile__("stwbrx %1,0,%2; eieio" : "=m" (*addr) :
"r" (val), "r" (addr));
}
+#endif
+#ifndef out_be32
static inline void out_be32(volatile uint32_t *addr, uint32_t val)
{
__asm__ __volatile__("stw%U0%X0 %1,%0; eieio" : "=m" (*addr) : "r" (val));
}
+#endif
#endif /* ASM */
#endif /* _LIBCPU_IO_H */