swab.h 789 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * AVR32 byteswapping functions.
  3. */
  4. #ifndef _UAPI__ASM_AVR32_SWAB_H
  5. #define _UAPI__ASM_AVR32_SWAB_H
  6. #include <linux/types.h>
  7. #include <linux/compiler.h>
  8. #define __SWAB_64_THRU_32__
  9. #ifdef __CHECKER__
  10. extern unsigned long __builtin_bswap_32(unsigned long x);
  11. extern unsigned short __builtin_bswap_16(unsigned short x);
  12. #endif
  13. /*
  14. * avr32-linux-gcc versions earlier than 4.2 improperly sign-extends
  15. * the result.
  16. */
  17. #if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2)
  18. static inline __attribute_const__ __u16 __arch_swab16(__u16 val)
  19. {
  20. return __builtin_bswap_16(val);
  21. }
  22. #define __arch_swab16 __arch_swab16
  23. static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
  24. {
  25. return __builtin_bswap_32(val);
  26. }
  27. #define __arch_swab32 __arch_swab32
  28. #endif
  29. #endif /* _UAPI__ASM_AVR32_SWAB_H */