From 56aedd6817ff58992272bca9a6bee86a6355a376 Mon Sep 17 00:00:00 2001 From: Daiyuu Nobori Date: Tue, 22 Feb 2022 19:37:29 +0100 Subject: [PATCH] Memory: Add LittleEndian16(), LittleEndian32() and LittleEndian64() --- src/Mayaqua/Memory.c | 42 ++++++++++++++++++++++++++++++++++++++++++ src/Mayaqua/Memory.h | 3 +++ 2 files changed, 45 insertions(+) diff --git a/src/Mayaqua/Memory.c b/src/Mayaqua/Memory.c index 8e97f8c1..315f89c0 100644 --- a/src/Mayaqua/Memory.c +++ b/src/Mayaqua/Memory.c @@ -3373,6 +3373,48 @@ UINT64 Endian64(UINT64 src) } } +// Endian conversion 16bit +USHORT LittleEndian16(USHORT src) +{ + int x = 0x01000000; + if (*((char *)&x)) + { + return Swap16(src); + } + else + { + return src; + } +} + +// Endian conversion 32bit +UINT LittleEndian32(UINT src) +{ + int x = 0x01000000; + if (*((char *)&x)) + { + return Swap32(src); + } + else + { + return src; + } +} + +// Endian conversion 64bit +UINT64 LittleEndian64(UINT64 src) +{ + int x = 0x01000000; + if (*((char *)&x)) + { + return Swap64(src); + } + else + { + return src; + } +} + // 16bit swap USHORT Swap16(USHORT value) { diff --git a/src/Mayaqua/Memory.h b/src/Mayaqua/Memory.h index c2b7029b..8b39cd9d 100644 --- a/src/Mayaqua/Memory.h +++ b/src/Mayaqua/Memory.h @@ -199,6 +199,9 @@ UINT64 Swap64(UINT64 value); USHORT Endian16(USHORT src); UINT Endian32(UINT src); UINT64 Endian64(UINT64 src); +USHORT LittleEndian16(USHORT src); +UINT LittleEndian32(UINT src); +UINT64 LittleEndian64(UINT64 src); void EndianUnicode(wchar_t *str); BUF *NewBuf();