Implemented RtlExtendedMagicDivide
This commit is contained in:
parent
bcd6b98764
commit
7ced0be9e1
|
@ -209,7 +209,16 @@ XBSYSAPI EXPORTNUM(282) LARGE_INTEGER NTAPI RtlExtendedLargeIntegerDivide
|
|||
IN PULONG Remainder // OUT? OPTIONAL?
|
||||
);
|
||||
|
||||
XBSYSAPI VOID *RtlExtendedMagicDivide;
|
||||
// ******************************************************************
|
||||
// * 0x011B - RtlExtendedMagicDivide()
|
||||
// ******************************************************************
|
||||
XBSYSAPI EXPORTNUM(283) LARGE_INTEGER NTAPI RtlExtendedMagicDivide
|
||||
(
|
||||
IN LARGE_INTEGER Dividend,
|
||||
IN LARGE_INTEGER MagicDivisor,
|
||||
IN CCHAR ShiftCount
|
||||
);
|
||||
|
||||
XBSYSAPI VOID *RtlFillMemory;
|
||||
XBSYSAPI VOID *RtlFillMemoryUlong;
|
||||
|
||||
|
|
|
@ -532,6 +532,38 @@ XBSYSAPI EXPORTNUM(282) xboxkrnl::LARGE_INTEGER NTAPI xboxkrnl::RtlExtendedLarge
|
|||
RETURN(ret);
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x011B - RtlExtendedMagicDivide()
|
||||
// ******************************************************************
|
||||
XBSYSAPI EXPORTNUM(283) xboxkrnl::LARGE_INTEGER NTAPI xboxkrnl::RtlExtendedMagicDivide
|
||||
(
|
||||
IN LARGE_INTEGER Dividend,
|
||||
IN LARGE_INTEGER MagicDivisor,
|
||||
IN CCHAR ShiftCount
|
||||
)
|
||||
{
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(Dividend)
|
||||
LOG_FUNC_ARG(MagicDivisor)
|
||||
LOG_FUNC_ARG(ShiftCount)
|
||||
LOG_FUNC_END;
|
||||
|
||||
LARGE_INTEGER ret;
|
||||
|
||||
// As long as there are no type casts for NtDll::LARGE_INTEGER to xboxkrnl::LARGE_INTEGER
|
||||
// and back, just copy the only member manually :
|
||||
// TODO : Simplify this by adding typecasts between NtDll and xboxkrnl versions of LARGE_INTEGER
|
||||
NtDll::LARGE_INTEGER NtDividend;
|
||||
NtDividend.QuadPart = Dividend.QuadPart;
|
||||
|
||||
NtDll::LARGE_INTEGER NtMagicDivisor;
|
||||
NtMagicDivisor.QuadPart = MagicDivisor.QuadPart;
|
||||
|
||||
ret.QuadPart = NtDll::RtlExtendedMagicDivide(NtDividend, NtMagicDivisor, (NtDll::CCHAR)ShiftCount).QuadPart;
|
||||
|
||||
RETURN(ret);
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x011E - RtlFreeAnsiString()
|
||||
// ******************************************************************
|
||||
|
|
|
@ -125,6 +125,7 @@ IMPORT(RtlEqualString);
|
|||
IMPORT(RtlEqualUnicodeString);
|
||||
IMPORT(RtlExtendedIntegerMultiply);
|
||||
IMPORT(RtlExtendedLargeIntegerDivide);
|
||||
IMPORT(RtlExtendedMagicDivide);
|
||||
IMPORT(RtlFreeAnsiString);
|
||||
IMPORT(RtlFreeHeap);
|
||||
IMPORT(RtlInitAnsiString);
|
||||
|
|
|
@ -1091,6 +1091,16 @@ typedef LARGE_INTEGER (NTAPI *FPTR_RtlExtendedLargeIntegerDivide)
|
|||
OUT PULONG Remainder
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * RtlExtendedMagicDivide
|
||||
// ******************************************************************
|
||||
typedef LARGE_INTEGER (NTAPI *FPTR_RtlExtendedMagicDivide)
|
||||
(
|
||||
IN LARGE_INTEGER Dividend,
|
||||
IN LARGE_INTEGER MagicDivisor,
|
||||
IN CCHAR ShiftCount
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * NtDelayExecution
|
||||
// ******************************************************************
|
||||
|
@ -1743,6 +1753,7 @@ EXTERN(RtlEqualString);
|
|||
EXTERN(RtlEqualUnicodeString);
|
||||
EXTERN(RtlExtendedIntegerMultiply);
|
||||
EXTERN(RtlExtendedLargeIntegerDivide);
|
||||
EXTERN(RtlExtendedMagicDivide);
|
||||
EXTERN(RtlFreeAnsiString);
|
||||
EXTERN(RtlFreeHeap);
|
||||
EXTERN(RtlInitAnsiString);
|
||||
|
|
|
@ -348,7 +348,7 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
|
|||
(uint32)FUNC(&xboxkrnl::RtlEqualUnicodeString), // 0x0118 (280)
|
||||
(uint32)FUNC(&xboxkrnl::RtlExtendedIntegerMultiply), // 0x0119 (281)
|
||||
(uint32)FUNC(&xboxkrnl::RtlExtendedLargeIntegerDivide), // 0x011A (282)
|
||||
(uint32)PANIC(0x011B), // 0x011B (283) RtlExtendedMagicDivide
|
||||
(uint32)FUNC(&xboxkrnl::RtlExtendedMagicDivide), // 0x011B (283)
|
||||
(uint32)PANIC(0x011C), // 0x011C (284) RtlFillMemory
|
||||
(uint32)PANIC(0x011D), // 0x011D (285) RtlFillMemoryUlong
|
||||
(uint32)FUNC(&xboxkrnl::RtlFreeAnsiString), // 0x011E (286)
|
||||
|
|
Loading…
Reference in New Issue