Merge branch 'develop' of https://github.com/fougue/gmio into develop
This commit is contained in:
commit
1c80b326ee
@ -39,19 +39,18 @@
|
||||
* uintNN_t gmio_decode_uintNN_be(const uint8_t* bytes)
|
||||
*
|
||||
* Functions that writes NNbit uint to memory in little-endian
|
||||
* uintNN_t gmio_encode_uintNN_le(uintNN_t val, uint8_t* bytes);
|
||||
* void gmio_encode_uintNN_le(uintNN_t val, uint8_t* bytes);
|
||||
*
|
||||
* Functions that writes NNbit uint to memory in big-endian
|
||||
* uintNN_t gmio_encode_uintNN_be(uintNN_t val, uint8_t* bytes);
|
||||
* void gmio_encode_uintNN_be(uintNN_t val, uint8_t* bytes);
|
||||
*/
|
||||
|
||||
GMIO_INLINE uint16_t gmio_decode_uint16_le(const uint8_t* bytes);
|
||||
GMIO_INLINE uint16_t gmio_decode_uint16_be(const uint8_t* bytes);
|
||||
GMIO_INLINE void gmio_encode_uint16_le(uint16_t val, uint8_t* bytes);
|
||||
GMIO_INLINE void gmio_encode_uint16_be(uint16_t val, uint8_t* bytes);
|
||||
|
||||
GMIO_INLINE uint32_t gmio_decode_uint32_le(const uint8_t* bytes);
|
||||
GMIO_INLINE uint32_t gmio_decode_uint32_be(const uint8_t* bytes);
|
||||
GMIO_INLINE void gmio_encode_uint16_le(uint16_t val, uint8_t* bytes);
|
||||
GMIO_INLINE void gmio_encode_uint16_be(uint16_t val, uint8_t* bytes);
|
||||
GMIO_INLINE void gmio_encode_uint32_le(uint32_t val, uint8_t* bytes);
|
||||
GMIO_INLINE void gmio_encode_uint32_be(uint32_t val, uint8_t* bytes);
|
||||
|
||||
@ -62,6 +61,39 @@ GMIO_INLINE void gmio_encode_uint64_le(uint64_t val, uint8_t* bytes);
|
||||
GMIO_INLINE void gmio_encode_uint64_be(uint64_t val, uint8_t* bytes);
|
||||
#endif /* GMIO_HAVE_INT64_TYPE */
|
||||
|
||||
/* Functions that reads NNbit uint from memory (little-endian) and advances
|
||||
* buffer pos
|
||||
* uintNN_t gmio_adv_decode_uintNN_le(const uint8_t** bytes)
|
||||
*
|
||||
* Functions that reads NNbit uint from memory (big-endian) and advances
|
||||
* buffer pos
|
||||
* uintNN_t gmio_adv_decode_uintNN_be(const uint8_t** bytes)
|
||||
*
|
||||
* Functions that writes NNbit uint to memory in little-endian and returns
|
||||
* advanced buffer pos
|
||||
* uint8_t* gmio_adv_encode_uintNN_le(uintNN_t val, uint8_t* bytes)
|
||||
*
|
||||
* Functions that writes NNbit uint to memory in big-endian and returns
|
||||
* advanced buffer pos
|
||||
* uint8_t* gmio_adv_encode_uintNN_be(uintNN_t val, uint8_t* bytes)
|
||||
*/
|
||||
|
||||
GMIO_INLINE uint16_t gmio_adv_decode_uint16_le(const uint8_t** bytes);
|
||||
GMIO_INLINE uint16_t gmio_adv_decode_uint16_be(const uint8_t** bytes);
|
||||
GMIO_INLINE uint32_t gmio_adv_decode_uint32_le(const uint8_t** bytes);
|
||||
GMIO_INLINE uint32_t gmio_adv_decode_uint32_be(const uint8_t** bytes);
|
||||
GMIO_INLINE uint8_t* gmio_adv_encode_uint16_le(uint16_t val, uint8_t* bytes);
|
||||
GMIO_INLINE uint8_t* gmio_adv_encode_uint16_be(uint16_t val, uint8_t* bytes);
|
||||
GMIO_INLINE uint8_t* gmio_adv_encode_uint32_le(uint32_t val, uint8_t* bytes);
|
||||
GMIO_INLINE uint8_t* gmio_adv_encode_uint32_be(uint32_t val, uint8_t* bytes);
|
||||
|
||||
#ifdef GMIO_HAVE_INT64_TYPE
|
||||
GMIO_INLINE uint64_t gmio_adv_decode_uint64_le(const uint8_t** bytes);
|
||||
GMIO_INLINE uint64_t gmio_adv_decode_uint64_be(const uint8_t** bytes);
|
||||
GMIO_INLINE uint8_t* gmio_adv_encode_uint64_le(uint64_t val, uint8_t* bytes);
|
||||
GMIO_INLINE uint8_t* gmio_adv_encode_uint64_be(uint64_t val, uint8_t* bytes);
|
||||
#endif /* GMIO_HAVE_INT64_TYPE */
|
||||
|
||||
|
||||
|
||||
/*
|
||||
@ -162,4 +194,86 @@ void gmio_encode_uint64_be(uint64_t val, uint8_t* bytes)
|
||||
|
||||
#endif /* GMIO_HAVE_INT64_TYPE */
|
||||
|
||||
uint16_t gmio_adv_decode_uint16_le(const uint8_t** bytes)
|
||||
{
|
||||
const uint16_t val = gmio_decode_uint16_le(*bytes);
|
||||
*bytes += 2;
|
||||
return val;
|
||||
}
|
||||
|
||||
uint16_t gmio_adv_decode_uint16_be(const uint8_t** bytes)
|
||||
{
|
||||
const uint16_t val = gmio_decode_uint16_be(*bytes);
|
||||
*bytes += 2;
|
||||
return val;
|
||||
}
|
||||
|
||||
uint32_t gmio_adv_decode_uint32_le(const uint8_t** bytes)
|
||||
{
|
||||
const uint32_t val = gmio_decode_uint32_le(*bytes);
|
||||
*bytes += 4;
|
||||
return val;
|
||||
}
|
||||
|
||||
uint32_t gmio_adv_decode_uint32_be(const uint8_t** bytes)
|
||||
{
|
||||
const uint32_t val = gmio_decode_uint32_be(*bytes);
|
||||
*bytes += 4;
|
||||
return val;
|
||||
}
|
||||
|
||||
uint8_t* gmio_adv_encode_uint16_le(uint16_t val, uint8_t* bytes)
|
||||
{
|
||||
gmio_encode_uint16_le(val, bytes);
|
||||
return bytes + 2;
|
||||
}
|
||||
|
||||
uint8_t* gmio_adv_encode_uint16_be(uint16_t val, uint8_t* bytes)
|
||||
{
|
||||
gmio_encode_uint16_be(val, bytes);
|
||||
return bytes + 2;
|
||||
}
|
||||
|
||||
uint8_t* gmio_adv_encode_uint32_le(uint32_t val, uint8_t* bytes)
|
||||
{
|
||||
gmio_encode_uint32_le(val, bytes);
|
||||
return bytes + 4;
|
||||
}
|
||||
|
||||
uint8_t* gmio_adv_encode_uint32_be(uint32_t val, uint8_t* bytes)
|
||||
{
|
||||
gmio_encode_uint32_be(val, bytes);
|
||||
return bytes + 4;
|
||||
}
|
||||
|
||||
#ifdef GMIO_HAVE_INT64_TYPE
|
||||
|
||||
uint64_t gmio_adv_decode_uint64_le(const uint8_t** bytes)
|
||||
{
|
||||
const uint64_t val = gmio_decode_uint64_le(*bytes);
|
||||
*bytes += 8;
|
||||
return val;
|
||||
}
|
||||
|
||||
uint64_t gmio_adv_decode_uint64_be(const uint8_t** bytes)
|
||||
{
|
||||
const uint64_t val = gmio_decode_uint64_be(*bytes);
|
||||
*bytes += 8;
|
||||
return val;
|
||||
}
|
||||
|
||||
uint8_t* gmio_adv_encode_uint64_le(uint64_t val, uint8_t* bytes)
|
||||
{
|
||||
gmio_encode_uint64_le(val, bytes);
|
||||
return bytes + 8;
|
||||
}
|
||||
|
||||
uint8_t* gmio_adv_encode_uint64_be(uint64_t val, uint8_t* bytes)
|
||||
{
|
||||
gmio_encode_uint64_be(val, bytes);
|
||||
return bytes + 8;
|
||||
}
|
||||
|
||||
#endif /* GMIO_HAVE_INT64_TYPE */
|
||||
|
||||
#endif /* GMIO_INTERNAL_BYTE_CODEC_H */
|
||||
|
@ -75,53 +75,6 @@ static const struct tm* gmio_nonnull_datetime(const struct tm* datetime)
|
||||
return datetime;
|
||||
}
|
||||
|
||||
/* Reads 16b uint from memory (little-endian) and advances buffer pos */
|
||||
static uint16_t gmio_adv_decode_uint16_le(const uint8_t** bytes)
|
||||
{
|
||||
const uint16_t val = gmio_decode_uint16_le(*bytes);
|
||||
*bytes += 2;
|
||||
return val;
|
||||
}
|
||||
|
||||
/* Reads 32b uint from memory (little-endian) and advances buffer pos */
|
||||
static uint32_t gmio_adv_decode_uint32_le(const uint8_t** bytes)
|
||||
{
|
||||
const uint32_t val = gmio_decode_uint32_le(*bytes);
|
||||
*bytes += 4;
|
||||
return val;
|
||||
}
|
||||
|
||||
/* Encodes little-endian 32b val in buffer and returns advanced buffer pos */
|
||||
static uint8_t* gmio_adv_encode_uint32_le(uint32_t val, uint8_t* bytes)
|
||||
{
|
||||
gmio_encode_uint32_le(val, bytes);
|
||||
return bytes + 4;
|
||||
}
|
||||
|
||||
/* Encodes little-endian 16b val in buffer and returns advanced buffer pos */
|
||||
static uint8_t* gmio_adv_encode_uint16_le(uint16_t val, uint8_t* bytes)
|
||||
{
|
||||
gmio_encode_uint16_le(val, bytes);
|
||||
return bytes + 2;
|
||||
}
|
||||
|
||||
#ifdef GMIO_HAVE_INT64_TYPE
|
||||
/* Reads 64b uint from memory (little-endian) and advances buffer pos */
|
||||
static uint64_t gmio_adv_decode_uint64_le(const uint8_t** bytes)
|
||||
{
|
||||
const uint64_t val = gmio_decode_uint64_le(*bytes);
|
||||
*bytes += 8;
|
||||
return val;
|
||||
}
|
||||
|
||||
/* Encodes little-endian 64b val in buffer and returns advanced buffer pos */
|
||||
static uint8_t* gmio_adv_encode_uint64_le(uint64_t val, uint8_t* bytes)
|
||||
{
|
||||
gmio_encode_uint64_le(val, bytes);
|
||||
return bytes + 8;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Helper to facilitate return from gmio_zip_write_xxx() API functions */
|
||||
static size_t gmio_zip_write_returnhelper(
|
||||
struct gmio_stream* stream,
|
||||
@ -142,8 +95,7 @@ static bool gmio_zip_read_checkhelper(
|
||||
return read == expected && !gmio_stream_error(stream);
|
||||
}
|
||||
|
||||
/* Helper to facilitate return from gmio_zip_read_xxx() and gmio_zip_write_xxx()
|
||||
* API functions */
|
||||
/* Helper to facilitate return from gmio_zip_[read,write]_xxx() API functions */
|
||||
static size_t gmio_zip_io_returnerr(size_t io_len, int error, int* ptr_error)
|
||||
{
|
||||
if (ptr_error != NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user