linux/arch/avr32/include/asm/swab.h
<<
>>
Prefs
   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__
  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 /* __ASM_AVR32_SWAB_H */
  36