1*00f892fcSMacpaul Lin /*
2*00f892fcSMacpaul Lin  *  linux/include/asm-arm/byteorder.h
3*00f892fcSMacpaul Lin  *
4*00f892fcSMacpaul Lin  * Copyright (C) 2011 Andes Technology Corporation
5*00f892fcSMacpaul Lin  * Shawn Lin, Andes Technology Corporation <nobuhiro@andestech.com>
6*00f892fcSMacpaul Lin  * Macpaul Lin, Andes Technology Corporation <macpaul@andestech.com>
7*00f892fcSMacpaul Lin  *
8*00f892fcSMacpaul Lin  * ARM Endian-ness.  In little endian mode, the data bus is connected such
9*00f892fcSMacpaul Lin  * that byte accesses appear as:
10*00f892fcSMacpaul Lin  *  0 = d0...d7, 1 = d8...d15, 2 = d16...d23, 3 = d24...d31
11*00f892fcSMacpaul Lin  * and word accesses (data or instruction) appear as:
12*00f892fcSMacpaul Lin  *  d0...d31
13*00f892fcSMacpaul Lin  *
14*00f892fcSMacpaul Lin  * When in big endian mode, byte accesses appear as:
15*00f892fcSMacpaul Lin  *  0 = d24...d31, 1 = d16...d23, 2 = d8...d15, 3 = d0...d7
16*00f892fcSMacpaul Lin  * and word accesses (data or instruction) appear as:
17*00f892fcSMacpaul Lin  *  d0...d31
18*00f892fcSMacpaul Lin  */
19*00f892fcSMacpaul Lin 
20*00f892fcSMacpaul Lin #ifndef __ASM_NDS_BYTEORDER_H
21*00f892fcSMacpaul Lin #define __ASM_NDS_BYTEORDER_H
22*00f892fcSMacpaul Lin 
23*00f892fcSMacpaul Lin #include <asm/types.h>
24*00f892fcSMacpaul Lin 
25*00f892fcSMacpaul Lin #if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
26*00f892fcSMacpaul Lin #  define __BYTEORDER_HAS_U64__
27*00f892fcSMacpaul Lin #  define __SWAB_64_THRU_32__
28*00f892fcSMacpaul Lin #endif
29*00f892fcSMacpaul Lin 
30*00f892fcSMacpaul Lin #ifdef __NDSEB__
31*00f892fcSMacpaul Lin #include <linux/byteorder/big_endian.h>
32*00f892fcSMacpaul Lin #else
33*00f892fcSMacpaul Lin #include <linux/byteorder/little_endian.h>
34*00f892fcSMacpaul Lin #endif
35*00f892fcSMacpaul Lin 
36*00f892fcSMacpaul Lin #endif
37