From b8d4f26e469677d487653163bea75dd075f79007 Mon Sep 17 00:00:00 2001 From: "Dr. Chat" Date: Sat, 28 Nov 2015 14:41:41 -0600 Subject: [PATCH] Fix NtWaitForMultipleObjectsEx definition --- src/xenia/kernel/xam/xam_net.cc | 2 +- src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc | 5 ++--- src/xenia/kernel/xboxkrnl/xboxkrnl_threading.h | 8 ++++---- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/xenia/kernel/xam/xam_net.cc b/src/xenia/kernel/xam/xam_net.cc index cadc353f1..44cdf687a 100644 --- a/src/xenia/kernel/xam/xam_net.cc +++ b/src/xenia/kernel/xam/xam_net.cc @@ -266,7 +266,7 @@ dword_result_t NetDll_WSAWaitForMultipleEvents( return ~0u; } - xe::be timeout_wait = (uint64_t)timeout; + uint64_t timeout_wait = (uint64_t)timeout; X_STATUS result = 0; do { diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc index 09c164145..c408303b8 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc @@ -923,8 +923,7 @@ DECLARE_XBOXKRNL_EXPORT(KeWaitForMultipleObjects, ExportTag::kImplemented | ExportTag::kThreading | ExportTag::kBlocking); -dword_result_t NtWaitForMultipleObjectsEx(dword_t count, - pointer_t> handles, +dword_result_t NtWaitForMultipleObjectsEx(dword_t count, lpdword_t handles, dword_t wait_type, dword_t wait_mode, dword_t alertable, lpqword_t timeout_ptr) { @@ -939,7 +938,7 @@ dword_result_t NtWaitForMultipleObjectsEx(dword_t count, if (!object) { return X_STATUS_INVALID_PARAMETER; } - objects[n] = std::move(object); + objects.push_back(std::move(object)); } uint64_t timeout = timeout_ptr ? uint64_t(*timeout_ptr) : 0; diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.h b/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.h index 506ef2daf..83385ec5c 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.h +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.h @@ -20,10 +20,10 @@ namespace xboxkrnl { dword_result_t NtSetEvent(dword_t handle, lpdword_t previous_state_ptr); dword_result_t NtClearEvent(dword_t handle); -dword_result_t NtWaitForMultipleObjectsEx( - dword_t count, pointer_t> handles, dword_t wait_type, - dword_t wait_mode, dword_t alertable, - pointer_t> timeout_ptr); +dword_result_t NtWaitForMultipleObjectsEx(dword_t count, lpdword_t handles, + dword_t wait_type, dword_t wait_mode, + dword_t alertable, + lpqword_t timeout_ptr); } // namespace xboxkrnl } // namespace kernel