39#ifndef NRF_802154_UTILS_BYTEORDER_H
40#define NRF_802154_UTILS_BYTEORDER_H
49#if !defined(__BYTE_ORDER__)
52#error "Please define __BYTE_ORDER__!"
54#elif defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
61static inline void host_64_to_little(uint64_t value, uint8_t * p_buffer)
64 memcpy(p_buffer, &value,
sizeof(uint64_t));
72static inline void host_32_to_little(uint32_t value, uint8_t * p_buffer)
75 memcpy(p_buffer, &value,
sizeof(uint32_t));
83static inline void host_24_to_little(uint32_t value, uint8_t * p_buffer)
86 memcpy(p_buffer, &value, 3);
94static inline void host_16_to_little(uint16_t value, uint8_t * p_buffer)
97 memcpy(p_buffer, &value,
sizeof(uint16_t));
106static inline uint64_t little_64_to_host(uint8_t * p_buffer)
112 memcpy(&value, p_buffer,
sizeof(uint64_t));
123static inline uint32_t little_32_to_host(uint8_t * p_buffer)
129 memcpy(&value, p_buffer,
sizeof(uint32_t));
140static inline uint32_t little_24_to_host(uint8_t * p_buffer)
146 memcpy(&value, p_buffer, 3);
157static inline uint16_t little_16_to_host(uint8_t * p_buffer)
163 memcpy(&value, p_buffer,
sizeof(uint16_t));
173static inline void host_64_to_big(uint64_t value, uint8_t * p_buffer)
177 uint8_t shift = (
sizeof(uint64_t) - 1) * 8;
179 for (uint8_t i = 0; i <
sizeof(uint64_t); i++, shift -= 8)
181 p_buffer[i] = (value >> shift) & 0xff;
190static inline void host_32_to_big(uint32_t value, uint8_t * p_buffer)
194 uint8_t shift = (
sizeof(uint32_t) - 1) * 8;
196 for (uint8_t i = 0; i <
sizeof(uint32_t); i++, shift -= 8)
198 p_buffer[i] = (value >> shift) & 0xff;
207static inline void host_24_to_big(uint32_t value, uint8_t * p_buffer)
211 uint8_t shift = (
sizeof(uint32_t) - 2) * 8;
213 for (uint8_t i = 0; i <
sizeof(uint32_t) - 1; i++, shift -= 8)
215 p_buffer[i] = (value >> shift) & 0xff;
224static inline void host_16_to_big(uint16_t value, uint8_t * p_buffer)
228 uint8_t shift = (
sizeof(uint16_t) - 1) * 8;
230 for (uint8_t i = 0; i <
sizeof(uint16_t); i++, shift -= 8)
232 p_buffer[i] = (value >> shift) & 0xff;
242static inline uint64_t big_64_to_host(uint8_t * p_buffer)
248 for (uint8_t i = 0; i <
sizeof(uint64_t); i++)
250 value = (value << 8) | p_buffer[i];
262static inline uint32_t big_32_to_host(uint8_t * p_buffer)
268 for (uint8_t i = 0; i <
sizeof(uint32_t); i++)
270 value = (value << 8) | p_buffer[i];
282static inline uint32_t big_24_to_host(uint8_t * p_buffer)
288 for (uint8_t i = 0; i <
sizeof(uint32_t) - 1; i++)
290 value = (value << 8) | p_buffer[i];
302static inline uint16_t big_16_to_host(uint8_t * p_buffer)
308 for (uint8_t i = 0; i <
sizeof(uint16_t); i++)
310 value = (value << 8) | p_buffer[i];
319#error "Unsupported endian-ness of the target machine"
#define NRF_802154_ASSERT(condition)
Definition nrf_802154_assert.h:45
#define NULL
Definition osal_types.h:36