diff options
author | Thibaut Mattern <tmattern@users.sourceforge.net> | 2003-10-08 22:56:38 +0000 |
---|---|---|
committer | Thibaut Mattern <tmattern@users.sourceforge.net> | 2003-10-08 22:56:38 +0000 |
commit | 00262ac20a76b28abb5aae563c929ec4e0c7694d (patch) | |
tree | 7063322192c8eeb22ed68c82c6047fae89afef4a /src | |
parent | 5e852c01266e49bef0e4d7d56ab10905cc32ccba (diff) | |
download | xine-lib-00262ac20a76b28abb5aae563c929ec4e0c7694d.tar.gz xine-lib-00262ac20a76b28abb5aae563c929ec4e0c7694d.tar.bz2 |
Adds LE_64, ME_64, BE_64...
CVS patchset: 5477
CVS date: 2003/10/08 22:56:38
Diffstat (limited to 'src')
-rw-r--r-- | src/xine-engine/bswap.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/xine-engine/bswap.h b/src/xine-engine/bswap.h index 1532ff758..a776fc7bf 100644 --- a/src/xine-engine/bswap.h +++ b/src/xine-engine/bswap.h @@ -94,15 +94,19 @@ inline static unsigned long long int ByteSwap64(unsigned long long int x) #define ABE_16(x) (be2me_16(*(uint16_t*)(x))) #define ABE_32(x) (be2me_32(*(uint32_t*)(x))) +#define ABE_64(x) (be2me_64(*(uint64_t*)(x))) #define ALE_16(x) (le2me_16(*(uint16_t*)(x))) #define ALE_32(x) (le2me_32(*(uint32_t*)(x))) +#define ALE_64(x) (le2me_64(*(uint64_t*)(x))) #ifdef ARCH_X86 #define BE_16(x) ABE_16(x) #define BE_32(x) ABE_32(x) +#define BE_64(x) ABE_64(x) #define LE_16(x) ALE_16(x) #define LE_32(x) ALE_32(x) +#define LE_64(x) ALE_64(x) #else @@ -111,24 +115,44 @@ inline static unsigned long long int ByteSwap64(unsigned long long int x) (((uint8_t*)(x))[1] << 16) | \ (((uint8_t*)(x))[2] << 8) | \ ((uint8_t*)(x))[3]) +#define BE_64(x) ((uint64_t)(((uint8_t*)(x))[0] << 56) | \ + (uint64_t)(((uint8_t*)(x))[1] << 48) | \ + (uint64_t)(((uint8_t*)(x))[2] << 40) | \ + (uint64_t)(((uint8_t*)(x))[3] << 32) | \ + (uint64_t)(((uint8_t*)(x))[4] << 24) | \ + (uint64_t)(((uint8_t*)(x))[5] << 16) | \ + (uint64_t)(((uint8_t*)(x))[6] << 8) | \ + (uint64_t)((uint8_t*)(x))[7]) #define LE_16(x) ((((uint8_t*)(x))[1] << 8) | ((uint8_t*)(x))[0]) #define LE_32(x) ((((uint8_t*)(x))[3] << 24) | \ (((uint8_t*)(x))[2] << 16) | \ (((uint8_t*)(x))[1] << 8) | \ ((uint8_t*)(x))[0]) +#define LE_64(x) ((uint64_t)(((uint8_t*)(x))[7] << 56) | \ + (uint64_t)(((uint8_t*)(x))[6] << 48) | \ + (uint64_t)(((uint8_t*)(x))[5] << 40) | \ + (uint64_t)(((uint8_t*)(x))[4] << 32) | \ + (uint64_t)(((uint8_t*)(x))[3] << 24) | \ + (uint64_t)(((uint8_t*)(x))[2] << 16) | \ + (uint64_t)(((uint8_t*)(x))[1] << 8) | \ + (uint64_t)((uint8_t*)(x))[0]) #endif /* !ARCH_X86 */ #ifdef WORDS_BIGENDIAN #define ME_16(x) BE_16(x) #define ME_32(x) BE_32(x) +#define ME_64(x) BE_64(x) #define AME_16(x) ABE_16(x) #define AME_32(x) ABE_32(x) +#define AME_64(x) ABE_64(x) #else #define ME_16(x) LE_16(x) #define ME_32(x) LE_32(x) +#define ME_64(x) LE_64(x) #define AME_16(x) ALE_16(x) #define AME_32(x) ALE_32(x) +#define AME_64(x) ALE_64(x) #endif #endif |