Making sure shim calls are cdecl.
This commit is contained in:
parent
426fccdbb4
commit
4495637616
|
@ -22,7 +22,7 @@ using namespace xe::kernel::xam;
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
|
||||||
void XGetAVPack_shim(
|
SHIM_CALL XGetAVPack_shim(
|
||||||
xe_ppc_state_t* ppc_state, XamState* state) {
|
xe_ppc_state_t* ppc_state, XamState* state) {
|
||||||
// DWORD
|
// DWORD
|
||||||
// Not sure what the values are for this, but 6 is VGA.
|
// Not sure what the values are for this, but 6 is VGA.
|
||||||
|
@ -33,7 +33,7 @@ void XGetAVPack_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void XGetGameRegion_shim(
|
SHIM_CALL XGetGameRegion_shim(
|
||||||
xe_ppc_state_t* ppc_state, XamState* state) {
|
xe_ppc_state_t* ppc_state, XamState* state) {
|
||||||
XELOGD("XGetGameRegion()");
|
XELOGD("XGetGameRegion()");
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ void XGetGameRegion_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void XGetLanguage_shim(
|
SHIM_CALL XGetLanguage_shim(
|
||||||
xe_ppc_state_t* ppc_state, XamState* state) {
|
xe_ppc_state_t* ppc_state, XamState* state) {
|
||||||
XELOGD("XGetLanguage()");
|
XELOGD("XGetLanguage()");
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ using namespace xe::kernel::xboxkrnl;
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
|
||||||
void HalReturnToFirmware_shim(
|
SHIM_CALL HalReturnToFirmware_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// void
|
// void
|
||||||
// IN FIRMWARE_REENTRY Routine
|
// IN FIRMWARE_REENTRY Routine
|
||||||
|
|
|
@ -21,7 +21,7 @@ using namespace xe::kernel::xboxkrnl;
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
|
||||||
void NtAllocateVirtualMemory_shim(
|
SHIM_CALL NtAllocateVirtualMemory_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// NTSTATUS
|
// NTSTATUS
|
||||||
// _Inout_ PVOID *BaseAddress,
|
// _Inout_ PVOID *BaseAddress,
|
||||||
|
@ -96,7 +96,7 @@ void NtAllocateVirtualMemory_shim(
|
||||||
SHIM_SET_RETURN(X_STATUS_SUCCESS);
|
SHIM_SET_RETURN(X_STATUS_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NtFreeVirtualMemory_shim(
|
SHIM_CALL NtFreeVirtualMemory_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// NTSTATUS
|
// NTSTATUS
|
||||||
// _Inout_ PVOID *BaseAddress,
|
// _Inout_ PVOID *BaseAddress,
|
||||||
|
|
|
@ -23,14 +23,14 @@ using namespace xe::kernel::xboxkrnl;
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
|
||||||
// void ExGetXConfigSetting_shim(
|
// SHIM_CALL ExGetXConfigSetting_shim(
|
||||||
// xe_ppc_state_t* ppc_state, KernelState* state) {
|
// xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// // ?
|
// // ?
|
||||||
// SHIM_SET_RETURN(0);
|
// SHIM_SET_RETURN(0);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
void XexCheckExecutablePrivilege_shim(
|
SHIM_CALL XexCheckExecutablePrivilege_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// BOOL
|
// BOOL
|
||||||
// DWORD Privilege
|
// DWORD Privilege
|
||||||
|
@ -62,7 +62,7 @@ void XexCheckExecutablePrivilege_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void XexGetModuleHandle_shim(
|
SHIM_CALL XexGetModuleHandle_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// BOOL
|
// BOOL
|
||||||
// LPCSZ ModuleName
|
// LPCSZ ModuleName
|
||||||
|
@ -90,12 +90,12 @@ void XexGetModuleHandle_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// void XexGetModuleSection_shim(
|
// SHIM_CALL XexGetModuleSection_shim(
|
||||||
// xe_ppc_state_t* ppc_state, KernelState* state) {
|
// xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
// void XexGetProcedureAddress_shim(
|
// SHIM_CALL XexGetProcedureAddress_shim(
|
||||||
// xe_ppc_state_t* ppc_state, KernelState* state) {
|
// xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace {
|
||||||
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ff561778
|
// http://msdn.microsoft.com/en-us/library/ff561778
|
||||||
void RtlCompareMemory_shim(
|
SHIM_CALL RtlCompareMemory_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// SIZE_T
|
// SIZE_T
|
||||||
// _In_ const VOID *Source1,
|
// _In_ const VOID *Source1,
|
||||||
|
@ -57,7 +57,7 @@ void RtlCompareMemory_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ff552123
|
// http://msdn.microsoft.com/en-us/library/ff552123
|
||||||
void RtlCompareMemoryUlong_shim(
|
SHIM_CALL RtlCompareMemoryUlong_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// SIZE_T
|
// SIZE_T
|
||||||
// _In_ PVOID Source,
|
// _In_ PVOID Source,
|
||||||
|
@ -97,7 +97,7 @@ void RtlCompareMemoryUlong_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ff552263
|
// http://msdn.microsoft.com/en-us/library/ff552263
|
||||||
void RtlFillMemoryUlong_shim(
|
SHIM_CALL RtlFillMemoryUlong_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// VOID
|
// VOID
|
||||||
// _Out_ PVOID Destination,
|
// _Out_ PVOID Destination,
|
||||||
|
@ -132,7 +132,7 @@ void RtlFillMemoryUlong_shim(
|
||||||
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ff561918
|
// http://msdn.microsoft.com/en-us/library/ff561918
|
||||||
void RtlInitAnsiString_shim(
|
SHIM_CALL RtlInitAnsiString_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// VOID
|
// VOID
|
||||||
// _Out_ PANSI_STRING DestinationString,
|
// _Out_ PANSI_STRING DestinationString,
|
||||||
|
@ -153,7 +153,7 @@ void RtlInitAnsiString_shim(
|
||||||
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ff561899
|
// http://msdn.microsoft.com/en-us/library/ff561899
|
||||||
void RtlFreeAnsiString_shim(
|
SHIM_CALL RtlFreeAnsiString_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// VOID
|
// VOID
|
||||||
// _Inout_ PANSI_STRING AnsiString
|
// _Inout_ PANSI_STRING AnsiString
|
||||||
|
@ -180,7 +180,7 @@ void RtlFreeAnsiString_shim(
|
||||||
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ff561934
|
// http://msdn.microsoft.com/en-us/library/ff561934
|
||||||
void RtlInitUnicodeString_shim(
|
SHIM_CALL RtlInitUnicodeString_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// VOID
|
// VOID
|
||||||
// _Out_ PUNICODE_STRING DestinationString,
|
// _Out_ PUNICODE_STRING DestinationString,
|
||||||
|
@ -202,7 +202,7 @@ void RtlInitUnicodeString_shim(
|
||||||
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ff561903
|
// http://msdn.microsoft.com/en-us/library/ff561903
|
||||||
void RtlFreeUnicodeString_shim(
|
SHIM_CALL RtlFreeUnicodeString_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// VOID
|
// VOID
|
||||||
// _Inout_ PUNICODE_STRING UnicodeString
|
// _Inout_ PUNICODE_STRING UnicodeString
|
||||||
|
@ -222,7 +222,7 @@ void RtlFreeUnicodeString_shim(
|
||||||
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ff562969
|
// http://msdn.microsoft.com/en-us/library/ff562969
|
||||||
void RtlUnicodeStringToAnsiString_shim(
|
SHIM_CALL RtlUnicodeStringToAnsiString_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// NTSTATUS
|
// NTSTATUS
|
||||||
// _Inout_ PANSI_STRING DestinationString,
|
// _Inout_ PANSI_STRING DestinationString,
|
||||||
|
@ -250,7 +250,7 @@ void RtlUnicodeStringToAnsiString_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void RtlImageXexHeaderField_shim(
|
SHIM_CALL RtlImageXexHeaderField_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// PVOID
|
// PVOID
|
||||||
// PVOID XexHeaderBase
|
// PVOID XexHeaderBase
|
||||||
|
@ -340,7 +340,7 @@ typedef struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void RtlInitializeCriticalSection_shim(
|
SHIM_CALL RtlInitializeCriticalSection_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// VOID
|
// VOID
|
||||||
// _Out_ LPCRITICAL_SECTION lpCriticalSection
|
// _Out_ LPCRITICAL_SECTION lpCriticalSection
|
||||||
|
@ -357,7 +357,7 @@ void RtlInitializeCriticalSection_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void RtlInitializeCriticalSectionAndSpinCount_shim(
|
SHIM_CALL RtlInitializeCriticalSectionAndSpinCount_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// NTSTATUS
|
// NTSTATUS
|
||||||
// _Out_ LPCRITICAL_SECTION lpCriticalSection,
|
// _Out_ LPCRITICAL_SECTION lpCriticalSection,
|
||||||
|
@ -382,7 +382,7 @@ void RtlInitializeCriticalSectionAndSpinCount_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void RtlEnterCriticalSection_shim(
|
SHIM_CALL RtlEnterCriticalSection_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// VOID
|
// VOID
|
||||||
// _Inout_ LPCRITICAL_SECTION lpCriticalSection
|
// _Inout_ LPCRITICAL_SECTION lpCriticalSection
|
||||||
|
@ -421,7 +421,7 @@ spin:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void RtlTryEnterCriticalSection_shim(
|
SHIM_CALL RtlTryEnterCriticalSection_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// DWORD
|
// DWORD
|
||||||
// _Inout_ LPCRITICAL_SECTION lpCriticalSection
|
// _Inout_ LPCRITICAL_SECTION lpCriticalSection
|
||||||
|
@ -452,7 +452,7 @@ void RtlTryEnterCriticalSection_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void RtlLeaveCriticalSection_shim(
|
SHIM_CALL RtlLeaveCriticalSection_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// VOID
|
// VOID
|
||||||
// _Inout_ LPCRITICAL_SECTION lpCriticalSection
|
// _Inout_ LPCRITICAL_SECTION lpCriticalSection
|
||||||
|
|
|
@ -55,7 +55,7 @@ namespace {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
void ExCreateThread_shim(
|
SHIM_CALL ExCreateThread_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// DWORD
|
// DWORD
|
||||||
// LPHANDLE Handle,
|
// LPHANDLE Handle,
|
||||||
|
@ -107,7 +107,7 @@ void ExCreateThread_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void KeGetCurrentProcessType_shim(
|
SHIM_CALL KeGetCurrentProcessType_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// DWORD
|
// DWORD
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ void KeGetCurrentProcessType_shim(
|
||||||
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ms686801
|
// http://msdn.microsoft.com/en-us/library/ms686801
|
||||||
void KeTlsAlloc_shim(
|
SHIM_CALL KeTlsAlloc_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// DWORD
|
// DWORD
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ void KeTlsAlloc_shim(
|
||||||
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ms686804
|
// http://msdn.microsoft.com/en-us/library/ms686804
|
||||||
void KeTlsFree_shim(
|
SHIM_CALL KeTlsFree_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// BOOL
|
// BOOL
|
||||||
// _In_ DWORD dwTlsIndex
|
// _In_ DWORD dwTlsIndex
|
||||||
|
@ -179,7 +179,7 @@ void KeTlsFree_shim(
|
||||||
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ms686812
|
// http://msdn.microsoft.com/en-us/library/ms686812
|
||||||
void KeTlsGetValue_shim(
|
SHIM_CALL KeTlsGetValue_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// LPVOID
|
// LPVOID
|
||||||
// _In_ DWORD dwTlsIndex
|
// _In_ DWORD dwTlsIndex
|
||||||
|
@ -208,7 +208,7 @@ void KeTlsGetValue_shim(
|
||||||
|
|
||||||
|
|
||||||
// http://msdn.microsoft.com/en-us/library/ms686818
|
// http://msdn.microsoft.com/en-us/library/ms686818
|
||||||
void KeTlsSetValue_shim(
|
SHIM_CALL KeTlsSetValue_shim(
|
||||||
xe_ppc_state_t* ppc_state, KernelState* state) {
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
// BOOL
|
// BOOL
|
||||||
// _In_ DWORD dwTlsIndex,
|
// _In_ DWORD dwTlsIndex,
|
||||||
|
|
|
@ -22,6 +22,8 @@ namespace xe {
|
||||||
namespace kernel {
|
namespace kernel {
|
||||||
|
|
||||||
|
|
||||||
|
#define SHIM_CALL void _cdecl
|
||||||
|
|
||||||
#define SHIM_MEM_ADDR(a) (ppc_state->membase + a)
|
#define SHIM_MEM_ADDR(a) (ppc_state->membase + a)
|
||||||
|
|
||||||
#define SHIM_MEM_16(a) (uint16_t)XEGETUINT16BE(SHIM_MEM_ADDR(a));
|
#define SHIM_MEM_16(a) (uint16_t)XEGETUINT16BE(SHIM_MEM_ADDR(a));
|
||||||
|
@ -38,6 +40,7 @@ namespace kernel {
|
||||||
#define SHIM_GET_ARG_64(n) SHIM_GPR_64(3 + n)
|
#define SHIM_GET_ARG_64(n) SHIM_GPR_64(3 + n)
|
||||||
#define SHIM_SET_RETURN(v) SHIM_SET_GPR_64(3, v)
|
#define SHIM_SET_RETURN(v) SHIM_SET_GPR_64(3, v)
|
||||||
|
|
||||||
|
|
||||||
} // namespace kernel
|
} // namespace kernel
|
||||||
} // namespace xe
|
} // namespace xe
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue