00001
00041 #ifndef ARCH_IO_H_INCLUDED
00042 #define ARCH_IO_H_INCLUDED
00043
00044 #include <types.h>
00045
00052 static inline uint8_t mmio_read8(const void *p)
00053 {
00054 return *(const volatile uint8_t *)p;
00055 }
00056
00063 static inline uint16_t mmio_read16(const void *p)
00064 {
00065 return *(const volatile uint16_t *)p;
00066 }
00067
00074 static inline uint32_t mmio_read32(const void *p)
00075 {
00076 return *(const volatile uint32_t *)p;
00077 }
00078
00086 static inline void mmio_write8(void *p, uint8_t val)
00087 {
00088 *(volatile uint8_t *)p = val;
00089 }
00090
00098 static inline void mmio_write16(void *p, uint16_t val)
00099 {
00100 *(volatile uint16_t *)p = val;
00101 }
00102
00110 static inline void mmio_write32(void *p, uint32_t val)
00111 {
00112 *(volatile uint32_t *)p = val;
00113 }
00114
00115 #endif