8 #include <machine/endian.h>
11 #define swap16(x) ntohs(x)
12 #define swap32(x) ntohl(x)
14 #define swap64(x) ((uint64_t)(((uint64_t)(x) << 56) & 0xff00000000000000ULL | \
15 ((uint64_t)(x) << 40) & 0x00ff000000000000ULL | \
16 ((uint64_t)(x) << 24) & 0x0000ff0000000000ULL | \
17 ((uint64_t)(x) << 8) & 0x000000ff00000000ULL | \
18 ((x) >> 8) & 0x00000000ff000000ULL | \
19 ((x) >> 24) & 0x0000000000ff0000ULL | \
20 ((x) >> 40) & 0x000000000000ff00ULL | \
21 ((x) >> 56) & 0x00000000000000ffULL))
35 # define be16atoh(x) be16toh(*(uint16_t*)(x))
38 # define be32atoh(x) be32toh(*(uint32_t*)(x))
41 # define be64atoh(x) be64toh(*(uint64_t*)(x))
44 # define le16atoh(x) le16toh(*(uint16_t*)(x))
47 # define le32atoh(x) le32toh(*(uint32_t*)(x))
50 # define le64atoh(x) le64toh(*(uint64_t*)(x))
54 # define htobe16a(a,x) *(uint16_t*)(a) = htobe16(x)
57 # define htobe32a(a,x) *(uint32_t*)(a) = htobe32(x)
60 # define htobe64a(a,x) *(uint64_t*)(a) = htobe64(x)
63 # define htole16a(a,x) *(uint16_t*)(a) = htole16(x)
66 # define htole32a(a,x) *(uint32_t*)(a) = htole32(x)
69 # define htole64a(a,x) *(uint64_t*)(a) = htole64(x)