Fix compilation of Interlocked API
This was achieved by prefixing XboxKrnl functions with Xb to prevent a name conflict with WinNT.h Additionally, rather than importing native Interlocked functions from NTDLL, we use the versions defined in WinNT.h
This commit is contained in:
parent
86053967fc
commit
56185eed5f
|
@ -172,47 +172,47 @@ XBSYSAPI EXPORTNUM(34) PLIST_ENTRY FASTCALL ExfInterlockedRemoveHeadList
|
|||
IN PKSPIN_LOCK Lock
|
||||
);
|
||||
|
||||
XBSYSAPI EXPORTNUM(51) LONG FASTCALL InterlockedCompareExchange
|
||||
XBSYSAPI EXPORTNUM(51) LONG FASTCALL XbInterlockedCompareExchange
|
||||
(
|
||||
IN OUT volatile PLONG Destination,
|
||||
IN LONG Exchange,
|
||||
IN LONG Comparand
|
||||
);
|
||||
|
||||
XBSYSAPI EXPORTNUM(52) LONG FASTCALL InterlockedDecrement
|
||||
XBSYSAPI EXPORTNUM(52) LONG FASTCALL XbInterlockedDecrement
|
||||
(
|
||||
IN OUT PLONG Addend
|
||||
);
|
||||
|
||||
XBSYSAPI EXPORTNUM(53) LONG FASTCALL InterlockedIncrement
|
||||
XBSYSAPI EXPORTNUM(53) LONG FASTCALL XbInterlockedIncrement
|
||||
(
|
||||
IN OUT PLONG Addend
|
||||
);
|
||||
|
||||
XBSYSAPI EXPORTNUM(54) LONG FASTCALL InterlockedExchange
|
||||
XBSYSAPI EXPORTNUM(54) LONG FASTCALL XbInterlockedExchange
|
||||
(
|
||||
IN volatile PLONG Destination,
|
||||
IN LONG Value
|
||||
);
|
||||
|
||||
XBSYSAPI EXPORTNUM(55) LONG FASTCALL InterlockedExchangeAdd
|
||||
XBSYSAPI EXPORTNUM(55) LONG FASTCALL XbInterlockedExchangeAdd
|
||||
(
|
||||
IN volatile PLONG Addend,
|
||||
IN LONG Value
|
||||
);
|
||||
|
||||
// Dxbx Note : The Xbox1 SINGLE_LIST strucures are the same as in WinNT
|
||||
XBSYSAPI EXPORTNUM(56) SINGLE_LIST_ENTRY * FASTCALL InterlockedFlushSList
|
||||
XBSYSAPI EXPORTNUM(56) SINGLE_LIST_ENTRY * FASTCALL XbInterlockedFlushSList
|
||||
(
|
||||
IN PSLIST_HEADER ListHead
|
||||
);
|
||||
|
||||
XBSYSAPI EXPORTNUM(57) SLIST_ENTRY * FASTCALL InterlockedPopEntrySList
|
||||
XBSYSAPI EXPORTNUM(57) SLIST_ENTRY * FASTCALL XbInterlockedPopEntrySList
|
||||
(
|
||||
IN PSLIST_HEADER ListHead
|
||||
);
|
||||
|
||||
XBSYSAPI EXPORTNUM(58) SLIST_ENTRY * FASTCALL InterlockedPushEntrySList
|
||||
XBSYSAPI EXPORTNUM(58) SLIST_ENTRY * FASTCALL XbInterlockedPushEntrySList
|
||||
(
|
||||
IN PSLIST_HEADER ListHead,
|
||||
IN PSLIST_ENTRY ListEntry
|
||||
|
|
|
@ -287,8 +287,12 @@ LIST_ENTRY, *PLIST_ENTRY;
|
|||
|
||||
typedef struct _SINGLE_LIST_ENTRY {
|
||||
struct _SINGLE_LIST_ENTRY *Next;
|
||||
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
|
||||
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY, SLIST_ENTRY, *PSLIST_ENTRY;
|
||||
|
||||
/*
|
||||
* Disabled as Cxbx-Reloaded does not support Win64 compilation
|
||||
* Win64 is not possible while using direct code execution, unless we add
|
||||
* X86-X64 translation
|
||||
#if defined(_WIN64)
|
||||
|
||||
//
|
||||
|
@ -311,10 +315,13 @@ typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
|
|||
|
||||
#else
|
||||
|
||||
typedef struct _SINGLE_LIST_ENTRY SLIST_ENTRY, *PSLIST_ENTRY;
|
||||
typedef _SLIST_ENTRY {
|
||||
struct _SLIST_ENTRY *Next;
|
||||
} SLIST_ENTRY, *PSLIST_ENTRY;
|
||||
|
||||
#endif // _WIN64
|
||||
|
||||
*/
|
||||
typedef union _SLIST_HEADER {
|
||||
ULONGLONG Alignment;
|
||||
struct {
|
||||
|
|
|
@ -123,9 +123,9 @@ std::ostream& operator<<(std::ostream& os, const xboxkrnl::PLARGE_INTEGER& value
|
|||
|
||||
using namespace xboxkrnl;
|
||||
|
||||
/*
|
||||
|
||||
// Source:ReactOS
|
||||
XBSYSAPI EXPORTNUM(51) xboxkrnl::LONG FASTCALL xboxkrnl::InterlockedCompareExchange
|
||||
XBSYSAPI EXPORTNUM(51) xboxkrnl::LONG FASTCALL xboxkrnl::XbInterlockedCompareExchange
|
||||
(
|
||||
IN OUT volatile PLONG Destination,
|
||||
IN LONG Exchange,
|
||||
|
@ -138,33 +138,33 @@ XBSYSAPI EXPORTNUM(51) xboxkrnl::LONG FASTCALL xboxkrnl::InterlockedCompareExcha
|
|||
LOG_FUNC_ARG(Comparand)
|
||||
LOG_FUNC_END;
|
||||
|
||||
RETURN(NtDll::InterlockedCompareExchange((NtDll::PLONG)Destination, (NtDll::LONG)Exchange, (NtDll::LONG)Comparand));
|
||||
RETURN(InterlockedCompareExchange((NtDll::PLONG)Destination, (NtDll::LONG)Exchange, (NtDll::LONG)Comparand));
|
||||
}
|
||||
|
||||
// Source:ReactOS
|
||||
XBSYSAPI EXPORTNUM(52) xboxkrnl::LONG FASTCALL xboxkrnl::InterlockedDecrement
|
||||
XBSYSAPI EXPORTNUM(52) xboxkrnl::LONG FASTCALL xboxkrnl::XbInterlockedDecrement
|
||||
(
|
||||
IN OUT PLONG Addend
|
||||
)
|
||||
{
|
||||
LOG_FUNC_ONE_ARG(Addend);
|
||||
|
||||
RETURN(NtDll::InterlockedDecrement((NtDll::PLONG)Addend));
|
||||
RETURN(InterlockedDecrement((NtDll::PLONG)Addend));
|
||||
}
|
||||
|
||||
// Source:ReactOS
|
||||
XBSYSAPI EXPORTNUM(53) xboxkrnl::LONG FASTCALL xboxkrnl::InterlockedIncrement
|
||||
XBSYSAPI EXPORTNUM(53) xboxkrnl::LONG FASTCALL xboxkrnl::XbInterlockedIncrement
|
||||
(
|
||||
IN OUT PLONG Addend
|
||||
)
|
||||
{
|
||||
LOG_FUNC_ONE_ARG(Addend);
|
||||
|
||||
RETURN(NtDll::InterlockedIncrement((NtDll::PLONG)Addend));
|
||||
RETURN(InterlockedIncrement((NtDll::PLONG)Addend));
|
||||
}
|
||||
|
||||
// Source:ReactOS
|
||||
XBSYSAPI EXPORTNUM(54) xboxkrnl::LONG FASTCALL xboxkrnl::InterlockedExchange
|
||||
XBSYSAPI EXPORTNUM(54) xboxkrnl::LONG FASTCALL xboxkrnl::XbInterlockedExchange
|
||||
(
|
||||
IN volatile PLONG Destination,
|
||||
IN LONG Value
|
||||
|
@ -175,11 +175,11 @@ XBSYSAPI EXPORTNUM(54) xboxkrnl::LONG FASTCALL xboxkrnl::InterlockedExchange
|
|||
LOG_FUNC_ARG(Value)
|
||||
LOG_FUNC_END;
|
||||
|
||||
RETURN(NtDll::InterlockedExchange((NtDll::PLONG)Destination, (NtDll::LONG)Value));
|
||||
RETURN(InterlockedExchange((NtDll::PLONG)Destination, (NtDll::LONG)Value));
|
||||
}
|
||||
|
||||
// Source:ReactOS
|
||||
XBSYSAPI EXPORTNUM(55) xboxkrnl::LONG FASTCALL xboxkrnl::InterlockedExchangeAdd
|
||||
XBSYSAPI EXPORTNUM(55) xboxkrnl::LONG FASTCALL xboxkrnl::XbInterlockedExchangeAdd
|
||||
(
|
||||
IN volatile PLONG Addend,
|
||||
IN LONG Value
|
||||
|
@ -190,34 +190,34 @@ XBSYSAPI EXPORTNUM(55) xboxkrnl::LONG FASTCALL xboxkrnl::InterlockedExchangeAdd
|
|||
LOG_FUNC_ARG(Value)
|
||||
LOG_FUNC_END;
|
||||
|
||||
RETURN(NtDll::InterlockedExchangeAdd((NtDll::PLONG)Addend, (NtDll::LONG)Value));
|
||||
RETURN(InterlockedExchangeAdd((NtDll::PLONG)Addend, (NtDll::LONG)Value));
|
||||
}
|
||||
|
||||
// Source:ReactOS
|
||||
// Dxbx Note : The Xbox1 SINGLE_LIST strucures are the same as in WinNT
|
||||
XBSYSAPI EXPORTNUM(56) xboxkrnl::PSINGLE_LIST_ENTRY FASTCALL xboxkrnl::InterlockedFlushSList
|
||||
XBSYSAPI EXPORTNUM(56) xboxkrnl::PSINGLE_LIST_ENTRY FASTCALL xboxkrnl::XbInterlockedFlushSList
|
||||
(
|
||||
IN xboxkrnl::PSLIST_HEADER ListHead
|
||||
)
|
||||
{
|
||||
LOG_FUNC_ONE_ARG(ListHead);
|
||||
|
||||
RETURN(NtDll::InterlockedFlushSList((NtDll::PSLIST_HEADER)ListHead));
|
||||
RETURN((xboxkrnl::PSINGLE_LIST_ENTRY)InterlockedFlushSList((::PSLIST_HEADER)ListHead));
|
||||
}
|
||||
|
||||
// Source:ReactOS
|
||||
XBSYSAPI EXPORTNUM(57) xboxkrnl::PSLIST_ENTRY FASTCALL xboxkrnl::InterlockedPopEntrySList
|
||||
XBSYSAPI EXPORTNUM(57) xboxkrnl::PSLIST_ENTRY FASTCALL xboxkrnl::XbInterlockedPopEntrySList
|
||||
(
|
||||
IN PSLIST_HEADER ListHead
|
||||
)
|
||||
{
|
||||
LOG_FUNC_ONE_ARG(ListHead);
|
||||
|
||||
RETURN(NtDll::InterlockedPopEntrySList((NtDll::PSLIST_HEADER)ListHead));
|
||||
RETURN((PSLIST_ENTRY)InterlockedPopEntrySList((::PSLIST_HEADER)ListHead));
|
||||
}
|
||||
|
||||
// Source:ReactOS
|
||||
XBSYSAPI EXPORTNUM(58) xboxkrnl::PSLIST_ENTRY FASTCALL xboxkrnl::InterlockedPushEntrySList
|
||||
XBSYSAPI EXPORTNUM(58) xboxkrnl::PSLIST_ENTRY FASTCALL xboxkrnl::XbInterlockedPushEntrySList
|
||||
(
|
||||
IN PSLIST_HEADER ListHead,
|
||||
IN PSLIST_ENTRY ListEntry
|
||||
|
@ -228,9 +228,9 @@ XBSYSAPI EXPORTNUM(58) xboxkrnl::PSLIST_ENTRY FASTCALL xboxkrnl::InterlockedPush
|
|||
LOG_FUNC_ARG(ListEntry)
|
||||
LOG_FUNC_END;
|
||||
|
||||
RETURN(NtDll::InterlockedPushEntrySList((NtDll::PSLIST_HEADER)ListHead, (NtDll::PSLIST_ENTRY)ListEntry));
|
||||
RETURN((xboxkrnl::PSLIST_ENTRY)InterlockedPushEntrySList((::PSLIST_HEADER)ListHead, (::PSLIST_ENTRY)ListEntry));
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x00A0 - KfRaiseIrql
|
||||
|
|
|
@ -565,52 +565,6 @@ KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
|
|||
// This is only the top of the actual definition. For the complete version,
|
||||
// see http://processhacker.sourceforge.net/doc/ntexapi_8h_source.html
|
||||
|
||||
/*
|
||||
typedef LONG(FASTCALL *FPTR_InterlockedCompareExchange)
|
||||
(
|
||||
IN OUT volatile PLONG Destination,
|
||||
IN LONG Exchange,
|
||||
IN LONG Comparand
|
||||
);
|
||||
|
||||
typedef LONG(FASTCALL *FPTR_InterlockedDecrement)
|
||||
(
|
||||
IN OUT PLONG Addend
|
||||
);
|
||||
|
||||
typedef LONG(FASTCALL *FPTR_InterlockedExchange)
|
||||
(
|
||||
IN volatile PLONG Destination,
|
||||
IN LONG Value
|
||||
);
|
||||
|
||||
typedef LONG(FASTCALL *FPTR_InterlockedExchangeAdd)
|
||||
(
|
||||
IN volatile PLONG Addend,
|
||||
IN LONG Value
|
||||
);
|
||||
|
||||
typedef PSINGLE_LIST_ENTRY(FASTCALL *FPTR_InterlockedFlushSList)
|
||||
(
|
||||
IN PSLIST_HEADER ListHead
|
||||
);
|
||||
|
||||
typedef LONG(FASTCALL *FPTR_InterlockedIncrement)
|
||||
(
|
||||
IN OUT PLONG Addend
|
||||
);
|
||||
|
||||
typedef PSLIST_ENTRY(FASTCALL *FPTR_InterlockedPopEntrySList)
|
||||
(
|
||||
IN PSLIST_HEADER ListHead
|
||||
);
|
||||
|
||||
typedef PSLIST_ENTRY(FASTCALL *FPTR_InterlockedPushEntrySList)
|
||||
(
|
||||
IN PSLIST_HEADER ListHead,
|
||||
IN PSLIST_ENTRY ListEntry
|
||||
);
|
||||
*/
|
||||
|
||||
// ******************************************************************
|
||||
// * KeDelayExecutionThread
|
||||
|
|
|
@ -115,24 +115,14 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
|
|||
(uint32)FUNC(&xboxkrnl::HalRequestSoftwareInterrupt), // 0x0030 (48)
|
||||
(uint32)FUNC(&xboxkrnl::HalReturnToFirmware), // 0x0031 (49)
|
||||
(uint32)FUNC(&xboxkrnl::HalWriteSMBusValue), // 0x0032 (50)
|
||||
(uint32)PANIC(0x0033), // 0x0033 (51) InterlockedCompareExchange
|
||||
(uint32)PANIC(0x0034), // 0x0034 (52) InterlockedDecrement
|
||||
(uint32)PANIC(0x0035), // 0x0035 (53) InterlockedIncrement
|
||||
(uint32)PANIC(0x0036), // 0x0036 (54) InterlockedExchange
|
||||
(uint32)PANIC(0x0037), // 0x0037 (55) InterlockedExchangeAdd
|
||||
(uint32)PANIC(0x0038), // 0x0038 (56) InterlockedFlushSList
|
||||
(uint32)PANIC(0x0039), // 0x0039 (57) InterlockedPopEntrySList
|
||||
(uint32)PANIC(0x003A), // 0x003A (58) InterlockedPushEntrySList
|
||||
/*
|
||||
(uint32)FUNC(&xboxkrnl::InterlockedCompareExchange), // 0x0033 (51)
|
||||
(uint32)FUNC(&xboxkrnl::InterlockedDecrement), // 0x0034 (52)
|
||||
(uint32)FUNC(&xboxkrnl::InterlockedIncrement), // 0x0035 (53)
|
||||
(uint32)FUNC(&xboxkrnl::InterlockedExchange), // 0x0036 (54)
|
||||
(uint32)FUNC(&xboxkrnl::InterlockedExchangeAdd), // 0x0037 (55)
|
||||
(uint32)FUNC(&xboxkrnl::InterlockedFlushSList), // 0x0038 (56)
|
||||
(uint32)FUNC(&xboxkrnl::InterlockedPopEntrySList), // 0x0039 (57)
|
||||
(uint32)FUNC(&xboxkrnl::InterlockedPushEntrySList), // 0x003A (58)
|
||||
*/
|
||||
(uint32)FUNC(&xboxkrnl::XbInterlockedCompareExchange), // 0x0033 (51)
|
||||
(uint32)FUNC(&xboxkrnl::XbInterlockedDecrement), // 0x0034 (52)
|
||||
(uint32)FUNC(&xboxkrnl::XbInterlockedIncrement), // 0x0035 (53)
|
||||
(uint32)FUNC(&xboxkrnl::XbInterlockedExchange), // 0x0036 (54)
|
||||
(uint32)FUNC(&xboxkrnl::XbInterlockedExchangeAdd), // 0x0037 (55)
|
||||
(uint32)FUNC(&xboxkrnl::XbInterlockedFlushSList), // 0x0038 (56)
|
||||
(uint32)FUNC(&xboxkrnl::XbInterlockedPopEntrySList), // 0x0039 (57)
|
||||
(uint32)FUNC(&xboxkrnl::XbInterlockedPushEntrySList), // 0x003A (58)
|
||||
(uint32)PANIC(0x003B), // 0x003B (59) IoAllocateIrp
|
||||
(uint32)PANIC(0x003C), // 0x003C (60) IoBuildAsynchronousFsdRequest
|
||||
(uint32)PANIC(0x003D), // 0x003D (61) IoBuildDeviceIoControlRequest
|
||||
|
|
Loading…
Reference in New Issue