30static inline uint64_t osmo_load64le_ext(
const void *p, uint8_t n)
34 const uint8_t *q = (uint8_t *)p;
35 for(i = 0; i < n; r |= ((uint64_t)q[i] << (8 * i)), i++);
44static inline uint64_t osmo_load64be_ext(
const void *p, uint8_t n)
48 const uint8_t *q = (uint8_t *)p;
49 for(i = 0; i < n; r |= ((uint64_t)q[i] << (64 - 8* (1 + i))), i++);
59static inline void osmo_store64le_ext(uint64_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_store64be_ext(uint64_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 uint64_t osmo_load64le(
const void *p)
85 return osmo_load64le_ext(p, 64 / 8);
89static inline uint64_t osmo_load64be(
const void *p)
91 return osmo_load64be_ext(p, 64 / 8);
96static inline void osmo_store64le(uint64_t x,
void *p)
98 osmo_store64le_ext(x, p, 64 / 8);
102static inline void osmo_store64be(uint64_t x,
void *p)
104 osmo_store64be_ext(x, p, 64 / 8);