Linux 2.6.25.3
[linux/fpc-iii.git] / include / asm-avr32 / byteorder.h
blobd77b48ba73387ba57ac932e5a6676d43b1c6a584
1 /*
2 * AVR32 endian-conversion functions.
3 */
4 #ifndef __ASM_AVR32_BYTEORDER_H
5 #define __ASM_AVR32_BYTEORDER_H
7 #include <asm/types.h>
8 #include <linux/compiler.h>
10 #ifdef __CHECKER__
11 extern unsigned long __builtin_bswap_32(unsigned long x);
12 extern unsigned short __builtin_bswap_16(unsigned short x);
13 #endif
16 * avr32-linux-gcc versions earlier than 4.2 improperly sign-extends
17 * the result.
19 #if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2)
20 #define __arch__swab32(x) __builtin_bswap_32(x)
21 #define __arch__swab16(x) __builtin_bswap_16(x)
22 #endif
24 #if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
25 # define __BYTEORDER_HAS_U64__
26 # define __SWAB_64_THRU_32__
27 #endif
29 #include <linux/byteorder/big_endian.h>
31 #endif /* __ASM_AVR32_BYTEORDER_H */