xref: /rk3399_rockchip-uboot/arch/arm/include/asm/byteorder.h (revision 819833af39a91fa1c1e8252862bbda6f5a602f7b)
1*819833afSPeter Tyser /*
2*819833afSPeter Tyser  *  linux/include/asm-arm/byteorder.h
3*819833afSPeter Tyser  *
4*819833afSPeter Tyser  * ARM Endian-ness.  In little endian mode, the data bus is connected such
5*819833afSPeter Tyser  * that byte accesses appear as:
6*819833afSPeter Tyser  *  0 = d0...d7, 1 = d8...d15, 2 = d16...d23, 3 = d24...d31
7*819833afSPeter Tyser  * and word accesses (data or instruction) appear as:
8*819833afSPeter Tyser  *  d0...d31
9*819833afSPeter Tyser  *
10*819833afSPeter Tyser  * When in big endian mode, byte accesses appear as:
11*819833afSPeter Tyser  *  0 = d24...d31, 1 = d16...d23, 2 = d8...d15, 3 = d0...d7
12*819833afSPeter Tyser  * and word accesses (data or instruction) appear as:
13*819833afSPeter Tyser  *  d0...d31
14*819833afSPeter Tyser  */
15*819833afSPeter Tyser #ifndef __ASM_ARM_BYTEORDER_H
16*819833afSPeter Tyser #define __ASM_ARM_BYTEORDER_H
17*819833afSPeter Tyser 
18*819833afSPeter Tyser 
19*819833afSPeter Tyser #include <asm/types.h>
20*819833afSPeter Tyser 
21*819833afSPeter Tyser #if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
22*819833afSPeter Tyser #  define __BYTEORDER_HAS_U64__
23*819833afSPeter Tyser #  define __SWAB_64_THRU_32__
24*819833afSPeter Tyser #endif
25*819833afSPeter Tyser 
26*819833afSPeter Tyser #ifdef __ARMEB__
27*819833afSPeter Tyser #include <linux/byteorder/big_endian.h>
28*819833afSPeter Tyser #else
29*819833afSPeter Tyser #include <linux/byteorder/little_endian.h>
30*819833afSPeter Tyser #endif
31*819833afSPeter Tyser 
32*819833afSPeter Tyser #endif
33