Commit | Line | Data |
---|---|---|
5f97f7f9 HS |
1 | /* |
2 | * AVR32 endian-conversion functions. | |
3 | */ | |
4 | #ifndef __ASM_AVR32_BYTEORDER_H | |
5 | #define __ASM_AVR32_BYTEORDER_H | |
6 | ||
7 | #include <asm/types.h> | |
8 | #include <linux/compiler.h> | |
9 | ||
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 | |
14 | ||
bafe6803 HS |
15 | /* |
16 | * avr32-linux-gcc versions earlier than 4.2 improperly sign-extends | |
17 | * the result. | |
18 | */ | |
19 | #if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2) | |
5f97f7f9 HS |
20 | #define __arch__swab32(x) __builtin_bswap_32(x) |
21 | #define __arch__swab16(x) __builtin_bswap_16(x) | |
bafe6803 | 22 | #endif |
5f97f7f9 HS |
23 | |
24 | #if !defined(__STRICT_ANSI__) || defined(__KERNEL__) | |
25 | # define __BYTEORDER_HAS_U64__ | |
26 | # define __SWAB_64_THRU_32__ | |
27 | #endif | |
28 | ||
29 | #include <linux/byteorder/big_endian.h> | |
30 | ||
31 | #endif /* __ASM_AVR32_BYTEORDER_H */ |