bswap.h revision 4af48bf7c72ef1e201c64bd475377b5af9d8e8a1
#ifndef BSWAP_H
#define BSWAP_H
#include "config-host.h"
#include <inttypes.h>
#ifdef HAVE_MACHINE_BSWAP_H
#else
#ifdef HAVE_BYTESWAP_H
#include <byteswap.h>
#else
({ \
((uint16_t)( \
})
({ \
((uint32_t)( \
})
({ \
((uint64_t)( \
})
#endif /* !HAVE_BYTESWAP_H */
{
return bswap_16(x);
}
{
return bswap_32(x);
}
{
return bswap_64(x);
}
#endif /* ! HAVE_MACHINE_BSWAP_H */
{
*s = bswap16(*s);
}
{
*s = bswap32(*s);
}
{
*s = bswap64(*s);
}
#if defined(WORDS_BIGENDIAN)
#else
#endif
{\
}\
\
{\
}\
\
{\
}\
\
{\
}\
\
{\
}\
\
{\
}
/* unaligned versions (optimized for frequent unaligned accesses)*/
#define cpu_to_le16wu(p, v) cpu_to_le16w(p, v)
#define cpu_to_le32wu(p, v) cpu_to_le32w(p, v)
#define le16_to_cpupu(p) le16_to_cpup(p)
#define le32_to_cpupu(p) le32_to_cpup(p)
#define be32_to_cpupu(p) be32_to_cpup(p)
#define cpu_to_be16wu(p, v) cpu_to_be16w(p, v)
#define cpu_to_be32wu(p, v) cpu_to_be32w(p, v)
#else
{
}
{
}
{
}
{
}
{
}
{
p1[0] = v >> 8;
}
{
p1[0] = v >> 24;
}
#endif
#ifdef WORDS_BIGENDIAN
#define cpu_to_32wu cpu_to_be32wu
#else
#define cpu_to_32wu cpu_to_le32wu
#endif
#endif /* BSWAP_H */