28#ifndef CXXUTILS_GET_UNALIGNED_H
29#define CXXUTILS_GET_UNALIGNED_H
66 memcpy (&ret, p,
sizeof(ret));
86 memcpy (&ret, p,
sizeof(ret));
106 memcpy (&ret, p,
sizeof(ret));
float get_unaligned< float >(const uint8_t *ATH_RESTRICT &p)
uint32_t le32toh(uint32_t x)
double get_unaligned_double(const uint8_t *ATH_RESTRICT &p)
Read a little-endian double value from a possibly unaligned pointer.
uint32_t get_unaligned32(const uint8_t *ATH_RESTRICT &p)
Read a 4-byte little-endian value from a possibly unaligned pointer.
int16_t get_unaligned< int16_t >(const uint8_t *ATH_RESTRICT &p)
T get_unaligned(const uint8_t *ATH_RESTRICT &p)
Define templated versions of the above functions.
uint16_t get_unaligned16(const uint8_t *ATH_RESTRICT &p)
Read a 2-byte little-endian value from a possibly unaligned pointer.
uint32_t get_unaligned< uint32_t >(const uint8_t *ATH_RESTRICT &p)
uint16_t le16toh(uint16_t x)
uint8_t get_unaligned< uint8_t >(const uint8_t *ATH_RESTRICT &p)
int64_t get_unaligned< int64_t >(const uint8_t *ATH_RESTRICT &p)
uint64_t get_unaligned64(const uint8_t *ATH_RESTRICT &p)
Read an 8-byte little-endian value from a possibly unaligned pointer.
uint16_t get_unaligned< uint16_t >(const uint8_t *ATH_RESTRICT &p)
float get_unaligned_float(const uint8_t *ATH_RESTRICT &p)
Read a little-endian float value from a possibly unaligned pointer.
int32_t get_unaligned< int32_t >(const uint8_t *ATH_RESTRICT &p)
int8_t get_unaligned< int8_t >(const uint8_t *ATH_RESTRICT &p)
double get_unaligned< double >(const uint8_t *ATH_RESTRICT &p)
uint64_t get_unaligned< uint64_t >(const uint8_t *ATH_RESTRICT &p)
uint64_t le64toh(uint64_t x)
Macro wrapping the nonstandard restrict keyword.