30static inline uint16_t osmo_load16le_ext(
const void *p, uint8_t n)
34 const uint8_t *q = (uint8_t *)p;
35 for(i = 0; i < n; r |= ((uint16_t)q[i] << (8 * i)), i++);
44static inline uint16_t osmo_load16be_ext(
const void *p, uint8_t n)
48 const uint8_t *q = (uint8_t *)p;
49 for(i = 0; i < n; r |= ((uint16_t)q[i] << (16 - 8* (1 + i))), i++);
59static inline void osmo_store16le_ext(uint16_t x,
void *p, uint8_t n)
62 uint8_t *q = (uint8_t *)p;
63 for(i = 0; i < n; q[i] = (x >> i * 8) & 0xFF, i++);
71static inline void osmo_store16be_ext(uint16_t x,
void *p, uint8_t n)
74 uint8_t *q = (uint8_t *)p;
75 for(i = 0; i < n; q[i] = (x >> ((n - 1 - i) * 8)) & 0xFF, i++);
83static inline uint16_t osmo_load16le(
const void *p)
85 return osmo_load16le_ext(p, 16 / 8);
89static inline uint16_t osmo_load16be(
const void *p)
91 return osmo_load16be_ext(p, 16 / 8);
96static inline void osmo_store16le(uint16_t x,
void *p)
98 osmo_store16le_ext(x, p, 16 / 8);
102static inline void osmo_store16be(uint16_t x,
void *p)
104 osmo_store16be_ext(x, p, 16 / 8);