byteswap.h revision a734c64bff58bda2fa48c2795453e092167b0ff7
#ifndef ETHERBOOT_BYTESWAP_H
#define ETHERBOOT_BYTESWAP_H
#include "endian.h"
#include "bits/byteswap.h"
#define __bswap_constant_16(x) \
#define __bswap_constant_32(x) \
#define __bswap_constant_64(x) \
#define __bswap_16(x) \
((uint16_t)(__builtin_constant_p(x) ? \
__bswap_constant_16(x) : \
__bswap_variable_16(x)))
#define __bswap_32(x) \
((uint32_t)(__builtin_constant_p(x) ? \
__bswap_constant_32(x) : \
__bswap_variable_32(x)))
#define __bswap_64(x) \
((uint64_t)(__builtin_constant_p(x) ? \
__bswap_constant_64(x) : \
__bswap_variable_64(x)))
#if __BYTE_ORDER == __LITTLE_ENDIAN
#include "little_bswap.h"
#endif
#if __BYTE_ORDER == __BIG_ENDIAN
#include "big_bswap.h"
#endif
/* Make routines available to all */
#define swap64(x) __bswap_64(x)
#define swap32(x) __bswap_32(x)
#define swap16(x) __bswap_16(x)
#define bswap_64(x) __bswap_64(x)
#define bswap_32(x) __bswap_32(x)
#define bswap_16(x) __bswap_16(x)
#endif /* ETHERBOOT_BYTESWAP_H */