diff options
| author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-22 10:38:37 -0500 |
|---|---|---|
| committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-22 10:38:37 -0500 |
| commit | fcc9d2e5a6c89d22b8b773a64fb4ad21ac318446 (patch) | |
| tree | a57612d1888735a2ec7972891b68c1ac5ec8faea /arch/avr32/include/asm/swab.h | |
| parent | 8dea78da5cee153b8af9c07a2745f6c55057fe12 (diff) | |
Diffstat (limited to 'arch/avr32/include/asm/swab.h')
| -rw-r--r-- | arch/avr32/include/asm/swab.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/arch/avr32/include/asm/swab.h b/arch/avr32/include/asm/swab.h new file mode 100644 index 00000000000..14cc737bbca --- /dev/null +++ b/arch/avr32/include/asm/swab.h | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | /* | ||
| 2 | * AVR32 byteswapping functions. | ||
| 3 | */ | ||
| 4 | #ifndef __ASM_AVR32_SWAB_H | ||
| 5 | #define __ASM_AVR32_SWAB_H | ||
| 6 | |||
| 7 | #include <linux/types.h> | ||
| 8 | #include <linux/compiler.h> | ||
| 9 | |||
| 10 | #define __SWAB_64_THRU_32__ | ||
| 11 | |||
| 12 | #ifdef __CHECKER__ | ||
| 13 | extern unsigned long __builtin_bswap_32(unsigned long x); | ||
| 14 | extern unsigned short __builtin_bswap_16(unsigned short x); | ||
| 15 | #endif | ||
| 16 | |||
| 17 | /* | ||
| 18 | * avr32-linux-gcc versions earlier than 4.2 improperly sign-extends | ||
| 19 | * the result. | ||
| 20 | */ | ||
| 21 | #if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2) | ||
| 22 | static inline __attribute_const__ __u16 __arch_swab16(__u16 val) | ||
| 23 | { | ||
| 24 | return __builtin_bswap_16(val); | ||
| 25 | } | ||
| 26 | #define __arch_swab16 __arch_swab16 | ||
| 27 | |||
| 28 | static inline __attribute_const__ __u32 __arch_swab32(__u32 val) | ||
| 29 | { | ||
| 30 | return __builtin_bswap_32(val); | ||
| 31 | } | ||
| 32 | #define __arch_swab32 __arch_swab32 | ||
| 33 | #endif | ||
| 34 | |||
| 35 | #endif /* __ASM_AVR32_SWAB_H */ | ||
