From 0f4f849a3c02cfc2798147fd015f2fd65c21f59a Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Thu, 22 Aug 2013 17:27:02 -0300 Subject: [PATCH] util: Add functions to do 64 bits endiannes conversion --- src/lib/shared/util.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/lib/shared/util.h b/src/lib/shared/util.h index 762a458..23ba004 100644 --- a/src/lib/shared/util.h +++ b/src/lib/shared/util.h @@ -39,6 +39,16 @@ }) #if __BYTE_ORDER == __LITTLE_ENDIAN +static inline uint64_t get_le64(const void *ptr) +{ + return get_unaligned((const uint64_t *) ptr); +} + +static inline uint64_t get_be64(const void *ptr) +{ + return bswap_64(get_unaligned((const uint64_t *) ptr)); +} + static inline uint32_t get_le32(const void *ptr) { return get_unaligned((const uint32_t *) ptr); @@ -60,6 +70,15 @@ static inline uint16_t get_be16(const void *ptr) } #elif __BYTE_ORDER == __BIG_ENDIAN +static inline uint64_t get_le64(const void *ptr) +{ + return bswap_64(get_unaligned((const uint64_t *) ptr)); +} + +static inline uint64_t get_be64(const void *ptr) +{ + return get_unaligned((const uint64_t *) ptr); +} static inline uint32_t get_le32(const void *ptr) { -- 2.7.4