From 7d41a3dfc5eaaf49aa2a547a9bd33472e833fc56 Mon Sep 17 00:00:00 2001 From: Skyth <19259897+blueskythlikesclouds@users.noreply.github.com> Date: Tue, 17 Dec 2024 15:55:26 +0300 Subject: [PATCH] Fix a few incorrect data types. --- UnleashedRecomp/kernel/imports.cpp | 17 ++++++++--------- UnleashedRecomp/kernel/io/file_system.cpp | 10 +++++----- UnleashedRecomp/kernel/xdm.h | 8 ++++---- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/UnleashedRecomp/kernel/imports.cpp b/UnleashedRecomp/kernel/imports.cpp index 1166923b..d810721a 100644 --- a/UnleashedRecomp/kernel/imports.cpp +++ b/UnleashedRecomp/kernel/imports.cpp @@ -150,7 +150,7 @@ inline void CloseKernelObject(XDISPATCHER_HEADER& header) DestroyKernelObject(header.WaitListHead.Blink); } -uint32_t GuestTimeoutToMilliseconds(be* timeout) +uint32_t GuestTimeoutToMilliseconds(be* timeout) { return timeout ? (*timeout * -1) / 10000 : INFINITE; } @@ -228,8 +228,7 @@ void XamContentDelete() LOG_UTILITY("!!! STUB !!!"); } - -uint32_t XamContentGetCreator(uint32_t userIndex, const XCONTENT_DATA* contentData, uint32_t* isCreator, be* xuid, XXOVERLAPPED* overlapped) +uint32_t XamContentGetCreator(uint32_t userIndex, const XCONTENT_DATA* contentData, be* isCreator, be* xuid, XXOVERLAPPED* overlapped) { if (isCreator) *isCreator = true; @@ -381,7 +380,7 @@ uint32_t FscSetCacheElementCount() return 0; } -uint32_t NtWaitForSingleObjectEx(uint32_t Handle, uint32_t WaitMode, uint32_t Alertable, be* Timeout) +uint32_t NtWaitForSingleObjectEx(uint32_t Handle, uint32_t WaitMode, uint32_t Alertable, be* Timeout) { uint32_t timeout = GuestTimeoutToMilliseconds(Timeout); assert(timeout == 0 || timeout == INFINITE); @@ -541,7 +540,7 @@ uint32_t RtlUnicodeToMultiByteN(char* MultiByteString, uint32_t MaxBytesInMultiB return STATUS_SUCCESS; } -uint32_t KeDelayExecutionThread(uint32_t WaitMode, bool Alertable, be* Timeout) +uint32_t KeDelayExecutionThread(uint32_t WaitMode, bool Alertable, be* Timeout) { // We don't do async file reads. if (Alertable) @@ -981,7 +980,7 @@ bool KeResetEvent(XKEVENT* pEvent) return QueryKernelObject(*pEvent)->Reset(); } -uint32_t KeWaitForSingleObject(XDISPATCHER_HEADER* Object, uint32_t WaitReason, uint32_t WaitMode, bool Alertable, be* Timeout) +uint32_t KeWaitForSingleObject(XDISPATCHER_HEADER* Object, uint32_t WaitReason, uint32_t WaitMode, bool Alertable, be* Timeout) { const uint32_t timeout = GuestTimeoutToMilliseconds(Timeout); assert(timeout == INFINITE); @@ -1255,7 +1254,7 @@ void NtQueryFullAttributesFile() LOG_UTILITY("!!! STUB !!!"); } -uint32_t RtlMultiByteToUnicodeN(wchar_t* UnicodeString, uint32_t MaxBytesInUnicodeString, uint16_t* BytesInUnicodeString, const char* MultiByteString, uint32_t BytesInMultiByteString) +uint32_t RtlMultiByteToUnicodeN(wchar_t* UnicodeString, uint32_t MaxBytesInUnicodeString, be* BytesInUnicodeString, const char* MultiByteString, uint32_t BytesInMultiByteString) { std::wstring_convert> converter; @@ -1317,7 +1316,7 @@ uint32_t NtCreateSemaphore(be* Handle, XOBJECT_ATTRIBUTES* ObjectAttri return STATUS_SUCCESS; } -uint32_t NtReleaseSemaphore(Semaphore* Handle, uint32_t ReleaseCount, uint32_t* PreviousCount) +uint32_t NtReleaseSemaphore(Semaphore* Handle, uint32_t ReleaseCount, int32_t* PreviousCount) { uint32_t previousCount; Handle->Release(ReleaseCount, &previousCount); @@ -1481,7 +1480,7 @@ void NetDll_XNetGetTitleXnAddr() LOG_UTILITY("!!! STUB !!!"); } -uint32_t KeWaitForMultipleObjects(uint32_t Count, xpointer* Objects, uint32_t WaitType, uint32_t WaitReason, uint32_t WaitMode, uint32_t Alertable, be* Timeout) +uint32_t KeWaitForMultipleObjects(uint32_t Count, xpointer* Objects, uint32_t WaitType, uint32_t WaitReason, uint32_t WaitMode, uint32_t Alertable, be* Timeout) { // FIXME: This function is only accounting for events. diff --git a/UnleashedRecomp/kernel/io/file_system.cpp b/UnleashedRecomp/kernel/io/file_system.cpp index e8ea62fd..71d7f2dd 100644 --- a/UnleashedRecomp/kernel/io/file_system.cpp +++ b/UnleashedRecomp/kernel/io/file_system.cpp @@ -157,9 +157,9 @@ uint32_t XReadFile return result; } -uint32_t XSetFilePointer(FileHandle* hFile, uint32_t lDistanceToMove, be* lpDistanceToMoveHigh, uint32_t dwMoveMethod) +uint32_t XSetFilePointer(FileHandle* hFile, int32_t lDistanceToMove, be* lpDistanceToMoveHigh, uint32_t dwMoveMethod) { - uint32_t distanceToMoveHigh = lpDistanceToMoveHigh ? lpDistanceToMoveHigh->get() : 0; + int32_t distanceToMoveHigh = lpDistanceToMoveHigh ? lpDistanceToMoveHigh->get() : 0; std::streamoff streamOffset = lDistanceToMove + (std::streamoff(distanceToMoveHigh) << 32U); std::fstream::seekdir streamSeekDir = {}; switch (dwMoveMethod) @@ -187,12 +187,12 @@ uint32_t XSetFilePointer(FileHandle* hFile, uint32_t lDistanceToMove, bestream.tellg(); if (lpDistanceToMoveHigh != nullptr) - *lpDistanceToMoveHigh = uint32_t(streamPos >> 32U); + *lpDistanceToMoveHigh = int32_t(streamPos >> 32U); return uint32_t(streamPos); } -uint32_t XSetFilePointerEx(FileHandle* hFile, uint32_t lDistanceToMove, LARGE_INTEGER* lpNewFilePointer, uint32_t dwMoveMethod) +uint32_t XSetFilePointerEx(FileHandle* hFile, int32_t lDistanceToMove, LARGE_INTEGER* lpNewFilePointer, uint32_t dwMoveMethod) { std::fstream::seekdir streamSeekDir = {}; switch (dwMoveMethod) @@ -220,7 +220,7 @@ uint32_t XSetFilePointerEx(FileHandle* hFile, uint32_t lDistanceToMove, LARGE_IN if (lpNewFilePointer != nullptr) { - lpNewFilePointer->QuadPart = ByteSwap(uint64_t(hFile->stream.tellg())); + lpNewFilePointer->QuadPart = ByteSwap(int64_t(hFile->stream.tellg())); } return TRUE; diff --git a/UnleashedRecomp/kernel/xdm.h b/UnleashedRecomp/kernel/xdm.h index 40798f01..1b55d787 100644 --- a/UnleashedRecomp/kernel/xdm.h +++ b/UnleashedRecomp/kernel/xdm.h @@ -44,13 +44,13 @@ typedef union _LARGE_INTEGER { struct { uint32_t LowPart; - uint32_t HighPart; - } DUMMYSTRUCTNAME; + int32_t HighPart; + }; struct { uint32_t LowPart; - uint32_t HighPart; + int32_t HighPart; } u; - uint64_t QuadPart; + int64_t QuadPart; } LARGE_INTEGER; typedef struct _FILETIME