swab.h revision e7f2c8c1f0e5b062c23001dac229e570228940e8
1/* 2 * AVR32 byteswapping functions. 3 */ 4#ifndef _UAPI__ASM_AVR32_SWAB_H 5#define _UAPI__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__ 13extern unsigned long __builtin_bswap_32(unsigned long x); 14extern 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) 22static inline __attribute_const__ __u16 __arch_swab16(__u16 val) 23{ 24 return __builtin_bswap_16(val); 25} 26#define __arch_swab16 __arch_swab16 27 28static 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 /* _UAPI__ASM_AVR32_SWAB_H */ 36