30static inline uint32_t osmo_load32le_ext(
const void *p, uint8_t n)
34 const uint8_t *q = (uint8_t *)p;
35 for(i = 0; i < n; r |= ((uint32_t)q[i] << (8 * i)), i++);
44static inline uint32_t osmo_load32be_ext(
const void *p, uint8_t n)
48 const uint8_t *q = (uint8_t *)p;
49 for(i = 0; i < n; r |= ((uint32_t)q[i] << (32 - 8* (1 + i))), i++);
59static inline void osmo_store32le_ext(uint32_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_store32be_ext(uint32_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 uint32_t osmo_load32le(
const void *p)
85 return osmo_load32le_ext(p, 32 / 8);
89static inline uint32_t osmo_load32be(
const void *p)
91 return osmo_load32be_ext(p, 32 / 8);
96static inline void osmo_store32le(uint32_t x,
void *p)
98 osmo_store32le_ext(x, p, 32 / 8);
102static inline void osmo_store32be(uint32_t x,
void *p)
104 osmo_store32be_ext(x, p, 32 / 8);