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();