The operators took void *, which made it extremely hard to debug incorrect usage, which I had a lot of in the ahci driver. They are now type safe, e.g. a a write to a byte requires a uint8_t*, not a void *.
Change-Id: I089a8f3c5d71fcbc3250535e47e998ee3c15f08e Signed-off-by: Ronald G. Minnich <[email protected]> --- kern/include/mmio.h | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/kern/include/mmio.h b/kern/include/mmio.h index 70bb3f9..a6628f4 100644 --- a/kern/include/mmio.h +++ b/kern/include/mmio.h @@ -28,42 +28,42 @@ * On the simple architectures, we just read/write the memory location * directly. */ -static inline uint8_t __raw_read8(const volatile void __iomem *addr) +static inline uint8_t __raw_read8(const volatile uint8_t __iomem *addr) { return *(const volatile uint8_t __force *)addr; } -static inline uint16_t __raw_read16(const volatile void __iomem *addr) +static inline uint16_t __raw_read16(const volatile uint16_t __iomem *addr) { return *(const volatile uint16_t __force *)addr; } -static inline uint32_t __raw_read32(const volatile void __iomem *addr) +static inline uint32_t __raw_read32(const volatile uint32_t __iomem *addr) { return *(const volatile uint32_t __force *)addr; } -static inline uint64_t __raw_read64(const volatile void __iomem *addr) +static inline uint64_t __raw_read64(const volatile uint64_t __iomem *addr) { return *(const volatile uint64_t __force *)addr; } -static inline void __raw_write8(uint8_t value, volatile void __iomem *addr) +static inline void __raw_write8(uint8_t value, volatile uint8_t __iomem *addr) { *(volatile uint8_t __force *)addr = value; } -static inline void __raw_write16(uint16_t value, volatile void __iomem *addr) +static inline void __raw_write16(uint16_t value, volatile uint16_t __iomem *addr) { *(volatile uint16_t __force *)addr = value; } -static inline void __raw_write32(uint32_t value, volatile void __iomem *addr) +static inline void __raw_write32(uint32_t value, volatile uint32_t __iomem *addr) { *(volatile uint32_t __force *)addr = value; } -static inline void __raw_write64(uint64_t value, volatile void __iomem *addr) +static inline void __raw_write64(uint64_t value, volatile uint64_t __iomem *addr) { *(volatile uint64_t __force *)addr = value; } @@ -72,42 +72,42 @@ static inline void __raw_write64(uint64_t value, volatile void __iomem *addr) * {read,write}{8,16,32,64}() access little endian memory and return result in * native endianness. */ -static inline uint8_t read8(const volatile void __iomem *addr) +static inline uint8_t read8(const volatile uint8_t __iomem *addr) { return __raw_read8(addr); } -static inline uint16_t read16(const volatile void __iomem *addr) +static inline uint16_t read16(const volatile uint16_t __iomem *addr) { return le16_to_cpu(__raw_read16(addr)); } -static inline uint32_t read32(const volatile void __iomem *addr) +static inline uint32_t read32(const volatile uint32_t __iomem *addr) { return le32_to_cpu(__raw_read32(addr)); } -static inline uint64_t read64(const volatile void __iomem *addr) +static inline uint64_t read64(const volatile uint64_t __iomem *addr) { return le64_to_cpu(__raw_read64(addr)); } -static inline void write8(uint8_t value, volatile void __iomem *addr) +static inline void write8(uint8_t value, volatile uint8_t __iomem *addr) { __raw_write8(value, addr); } -static inline void write16(uint16_t value, volatile void __iomem *addr) +static inline void write16(uint16_t value, volatile uint16_t __iomem *addr) { __raw_write16(cpu_to_le16(value), addr); } -static inline void write32(uint32_t value, volatile void __iomem *addr) +static inline void write32(uint32_t value, volatile uint32_t __iomem *addr) { __raw_write32(cpu_to_le32(value), addr); } -static inline void write64(uint64_t value, volatile void __iomem *addr) +static inline void write64(uint64_t value, volatile uint64_t __iomem *addr) { __raw_write64(cpu_to_le64(value), addr); } -- 2.8.0.rc3.226.g39d4020 -- You received this message because you are subscribed to the Google Groups "Akaros" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
