Adding stubs for SetEvent/ResetEvent.
This commit is contained in:
parent
be1ce73a30
commit
474ecea277
|
@ -307,6 +307,49 @@ SHIM_CALL KeTlsSetValue_shim(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int32_t xeKeResetEvent(void* event_ptr) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SHIM_CALL KeResetEvent_shim(
|
||||||
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
|
uint32_t event_ref = SHIM_GET_ARG_32(0);
|
||||||
|
|
||||||
|
XELOGD(
|
||||||
|
"KeResetEvent(%.4X)",
|
||||||
|
event_ref);
|
||||||
|
|
||||||
|
void* event_ptr = SHIM_MEM_ADDR(event_ref);
|
||||||
|
int32_t result = xeKeResetEvent(event_ptr);
|
||||||
|
|
||||||
|
SHIM_SET_RETURN(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int32_t xeKeSetEvent(void* event_ptr, uint32_t increment, uint32_t wait) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SHIM_CALL KeSetEvent_shim(
|
||||||
|
xe_ppc_state_t* ppc_state, KernelState* state) {
|
||||||
|
uint32_t event_ref = SHIM_GET_ARG_32(0);
|
||||||
|
uint32_t increment = SHIM_GET_ARG_32(1);
|
||||||
|
uint32_t wait = SHIM_GET_ARG_32(2);
|
||||||
|
|
||||||
|
XELOGD(
|
||||||
|
"KeSetEvent(%.4X, %.4X, %.4X)",
|
||||||
|
event_ref, increment, wait);
|
||||||
|
|
||||||
|
void* event_ptr = SHIM_MEM_ADDR(event_ref);
|
||||||
|
int32_t result = xeKeSetEvent(
|
||||||
|
event_ptr, increment, wait);
|
||||||
|
|
||||||
|
SHIM_SET_RETURN(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
X_STATUS xeKeWaitForSingleObject(
|
X_STATUS xeKeWaitForSingleObject(
|
||||||
void* object_ptr, uint32_t wait_reason, uint32_t processor_mode,
|
void* object_ptr, uint32_t wait_reason, uint32_t processor_mode,
|
||||||
uint32_t alertable, uint32_t* opt_timeout) {
|
uint32_t alertable, uint32_t* opt_timeout) {
|
||||||
|
@ -352,5 +395,8 @@ void xe::kernel::xboxkrnl::RegisterThreadingExports(
|
||||||
SHIM_SET_MAPPING("xboxkrnl.exe", KeTlsGetValue, state);
|
SHIM_SET_MAPPING("xboxkrnl.exe", KeTlsGetValue, state);
|
||||||
SHIM_SET_MAPPING("xboxkrnl.exe", KeTlsSetValue, state);
|
SHIM_SET_MAPPING("xboxkrnl.exe", KeTlsSetValue, state);
|
||||||
|
|
||||||
|
SHIM_SET_MAPPING("xboxkrnl.exe", KeResetEvent, state);
|
||||||
|
SHIM_SET_MAPPING("xboxkrnl.exe", KeSetEvent, state);
|
||||||
|
|
||||||
SHIM_SET_MAPPING("xboxkrnl.exe", KeWaitForSingleObject, state);
|
SHIM_SET_MAPPING("xboxkrnl.exe", KeWaitForSingleObject, state);
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,9 @@ int KeTlsFree(uint32_t tls_index);
|
||||||
uint32_t xeKeTlsGetValue(uint32_t tls_index);
|
uint32_t xeKeTlsGetValue(uint32_t tls_index);
|
||||||
int xeKeTlsSetValue(uint32_t tls_index, uint32_t tls_value);
|
int xeKeTlsSetValue(uint32_t tls_index, uint32_t tls_value);
|
||||||
|
|
||||||
|
int32_t xeKeResetEvent(void* event_ptr);
|
||||||
|
int32_t xeKeSetEvent(void* event_ptr, uint32_t increment, uint32_t wait);
|
||||||
|
|
||||||
X_STATUS xeKeWaitForSingleObject(
|
X_STATUS xeKeWaitForSingleObject(
|
||||||
void* object_ptr, uint32_t wait_reason, uint32_t processor_mode,
|
void* object_ptr, uint32_t wait_reason, uint32_t processor_mode,
|
||||||
uint32_t alertable, uint64_t* opt_timeout);
|
uint32_t alertable, uint64_t* opt_timeout);
|
||||||
|
|
Loading…
Reference in New Issue