xref: /kvm-unit-tests/lib/arm/asm/io.h (revision 5e61cba06248d9f2926804b7fb900fe9d721e86c)
1*5e61cba0SAndrew Jones #ifndef _ASMARM_IO_H_
2*5e61cba0SAndrew Jones #define _ASMARM_IO_H_
3*5e61cba0SAndrew Jones #include "libcflat.h"
4*5e61cba0SAndrew Jones #include "asm/barrier.h"
5*5e61cba0SAndrew Jones 
6*5e61cba0SAndrew Jones #define __bswap16 bswap16
7*5e61cba0SAndrew Jones static inline u16 bswap16(u16 val)
8*5e61cba0SAndrew Jones {
9*5e61cba0SAndrew Jones 	u16 ret;
10*5e61cba0SAndrew Jones 	asm volatile("rev16 %0, %1" : "=r" (ret) :  "r" (val));
11*5e61cba0SAndrew Jones 	return ret;
12*5e61cba0SAndrew Jones }
13*5e61cba0SAndrew Jones 
14*5e61cba0SAndrew Jones #define __bswap32 bswap32
15*5e61cba0SAndrew Jones static inline u32 bswap32(u32 val)
16*5e61cba0SAndrew Jones {
17*5e61cba0SAndrew Jones 	u32 ret;
18*5e61cba0SAndrew Jones 	asm volatile("rev %0, %1" : "=r" (ret) :  "r" (val));
19*5e61cba0SAndrew Jones 	return ret;
20*5e61cba0SAndrew Jones }
21*5e61cba0SAndrew Jones 
22*5e61cba0SAndrew Jones #include "asm-generic/io.h"
23*5e61cba0SAndrew Jones 
24*5e61cba0SAndrew Jones #endif /* _ASMARM_IO_H_ */
25