1#ifndef _X86_64_BYTEORDER_H 2#define _X86_64_BYTEORDER_H 3 4#include <asm/types.h> 5#include <linux/compiler.h> 6 7#ifdef __GNUC__ 8 9static __inline__ __attribute_const__ __u64 ___arch__swab64(__u64 x) 10{ 11 __asm__("bswapq %0" : "=r" (x) : "0" (x)); 12 return x; 13} 14 15static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x) 16{ 17 __asm__("bswapl %0" : "=r" (x) : "0" (x)); 18 return x; 19} 20 21/* Do not define swab16. Gcc is smart enough to recognize "C" version and 22 convert it into rotation or exhange. */ 23 24#define __arch__swab32(x) ___arch__swab32(x) 25#define __arch__swab64(x) ___arch__swab64(x) 26 27#endif /* __GNUC__ */ 28 29#define __BYTEORDER_HAS_U64__ 30 31#include <linux/byteorder/little_endian.h> 32 33#endif /* _X86_64_BYTEORDER_H */ 34