1 #ifndef __ASM_ARM_IO_H 2 #define __ASM_ARM_IO_H 3 4 #include <types.h> 5 #include <barriers.h> 6 7 #define __arch_getl(a) (*(volatile unsigned int *)(a)) 8 #define __arch_putl(v,a) (*(volatile unsigned int *)(a) = (v)) 9 10 #define mb() dsb() 11 #define __iormb() dmb() 12 #define __iowmb() dmb() 13 14 #define writel(v,c) ({ u32 __v = v; __iowmb(); __arch_putl(__v,c); __v; }) 15 #define readl(c) ({ u32 __v = __arch_getl(c); __iormb(); __v; }) 16 17 #endif /* __ASM_ARM_IO_H */ 18