diff options
Diffstat (limited to 'lib/libio/io.c')
-rw-r--r-- | lib/libio/io.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/lib/libio/io.c b/lib/libio/io.c index 7abfa36..3ccce2e 100644 --- a/lib/libio/io.c +++ b/lib/libio/io.c @@ -119,18 +119,39 @@ readl(void *handle, u_int32_t offset) void writeb(void *handle, u_int32_t offset, u_int8_t val) { - return ops->writeb(handle, offset, val); + ops->writeb(handle, offset, val); + __asm__ __volatile__ ("mb"); } void writew(void *handle, u_int32_t offset, u_int16_t val) { - return ops->writew(handle, offset, val); + ops->writew(handle, offset, val); + __asm__ __volatile__ ("mb"); } void writel(void *handle, u_int32_t offset, u_int32_t val) { + ops->writel(handle, offset, val); + __asm__ __volatile__ ("mb"); +} + +void +writeb_nb(void *handle, u_int32_t offset, u_int8_t val) +{ + return ops->writeb(handle, offset, val); +} + +void +writew_nb(void *handle, u_int32_t offset, u_int16_t val) +{ + return ops->writew(handle, offset, val); +} + +void +writel_nb(void *handle, u_int32_t offset, u_int32_t val) +{ return ops->writel(handle, offset, val); } |