Add RL64 and RL64S endianness helper macros
This commit is contained in:
parent
d01c4c56d5
commit
8a66b0777c
|
@ -150,6 +150,35 @@ struct zip_stat;
|
||||||
((uint64_t)((const uint8_t*)(x))[6] << 8) | \
|
((uint64_t)((const uint8_t*)(x))[6] << 8) | \
|
||||||
(uint64_t)((const uint8_t*)(x))[7])
|
(uint64_t)((const uint8_t*)(x))[7])
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read a 64 bits little endian unsigned integer out of memory.
|
||||||
|
* @param x a pointer to the input memory
|
||||||
|
* @return the corresponding unsigned integer
|
||||||
|
*/
|
||||||
|
#define RL64(x) (((uint64_t)((const uint8_t*)(x))[7] << 56) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[6] << 48) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[5] << 40) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[4] << 32) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[3] << 24) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[2] << 16) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[1] << 8) | \
|
||||||
|
(uint64_t)((const uint8_t*)(x))[0])
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read a 64 bits little endian signed integer out of memory.
|
||||||
|
* @param x a pointer to the input memory
|
||||||
|
* @return the corresponding unsigned integer
|
||||||
|
*/
|
||||||
|
#define RL64S(x) ((int64_t) \
|
||||||
|
(((uint64_t)((const uint8_t*)(x))[7] << 56) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[6] << 48) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[5] << 40) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[4] << 32) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[3] << 24) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[2] << 16) | \
|
||||||
|
((uint64_t)((const uint8_t*)(x))[1] << 8) | \
|
||||||
|
(uint64_t)((const uint8_t*)(x))[0]))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read a 32 bits big endian float out of memory.
|
* Read a 32 bits big endian float out of memory.
|
||||||
* @param x a pointer to the input memory
|
* @param x a pointer to the input memory
|
||||||
|
|
Loading…
Reference in New Issue