summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThibaut Mattern <tmattern@users.sourceforge.net>2003-10-08 22:56:38 +0000
committerThibaut Mattern <tmattern@users.sourceforge.net>2003-10-08 22:56:38 +0000
commit00262ac20a76b28abb5aae563c929ec4e0c7694d (patch)
tree7063322192c8eeb22ed68c82c6047fae89afef4a /src
parent5e852c01266e49bef0e4d7d56ab10905cc32ccba (diff)
downloadxine-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.h24
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