93
93
#if __BYTE_ORDER == __LITTLE_ENDIAN
94
94
#define htobs(d) (d)
95
95
#define htobl(d) (d)
96
97
#define btohs(d) (d)
97
98
#define btohl(d) (d)
98
100
#elif __BYTE_ORDER == __BIG_ENDIAN
99
101
#define htobs(d) bswap_16(d)
100
102
#define htobl(d) bswap_32(d)
103
#define htobll(d) bswap_64(d)
101
104
#define btohs(d) bswap_16(d)
102
105
#define btohl(d) bswap_32(d)
106
#define btohll(d) bswap_64(d)
104
108
#error "Unknown byte order"
121
125
__p->__v = (val); \
128
#if __BYTE_ORDER == __LITTLE_ENDIAN
129
static inline uint64_t bt_get_le64(void *ptr)
131
return bt_get_unaligned((uint64_t *) ptr);
134
static inline uint64_t bt_get_be64(void *ptr)
136
return bswap_64(bt_get_unaligned((uint64_t *) ptr));
139
static inline uint32_t bt_get_le32(void *ptr)
141
return bt_get_unaligned((uint32_t *) ptr);
144
static inline uint32_t bt_get_be32(void *ptr)
146
return bswap_32(bt_get_unaligned((uint32_t *) ptr));
149
static inline uint16_t bt_get_le16(void *ptr)
151
return bt_get_unaligned((uint16_t *) ptr);
154
static inline uint16_t bt_get_be16(void *ptr)
156
return bswap_16(bt_get_unaligned((uint16_t *) ptr));
158
#elif __BYTE_ORDER == __BIG_ENDIAN
159
static inline uint64_t bt_get_le64(void *ptr)
161
return bswap_64(bt_get_unaligned((uint64_t *) ptr));
164
static inline uint64_t bt_get_be64(void *ptr)
166
return bt_get_unaligned((uint64_t *) ptr);
169
static inline uint32_t bt_get_le32(void *ptr)
171
return bswap_32(bt_get_unaligned((uint32_t *) ptr));
174
static inline uint32_t bt_get_be32(void *ptr)
176
return bt_get_unaligned((uint32_t *) ptr);
179
static inline uint16_t bt_get_le16(void *ptr)
181
return bswap_16(bt_get_unaligned((uint16_t *) ptr));
184
static inline uint16_t bt_get_be16(void *ptr)
186
return bt_get_unaligned((uint16_t *) ptr);
189
#error "Unknown byte order"