diff options
author | bunnei <bunneidev@gmail.com> | 2015-01-21 02:53:52 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2015-01-22 02:48:46 +0100 |
commit | 68ddaaa2f5726e3619accee77b488ec285f3a2d7 (patch) | |
tree | f9d349d09c66efe768fbb4aed67b7b163c3ffec7 /src/core/hle/kernel/thread.h | |
parent | Thread: Use std::find in CheckWait_WaitObject. (diff) | |
download | yuzu-68ddaaa2f5726e3619accee77b488ec285f3a2d7.tar yuzu-68ddaaa2f5726e3619accee77b488ec285f3a2d7.tar.gz yuzu-68ddaaa2f5726e3619accee77b488ec285f3a2d7.tar.bz2 yuzu-68ddaaa2f5726e3619accee77b488ec285f3a2d7.tar.lz yuzu-68ddaaa2f5726e3619accee77b488ec285f3a2d7.tar.xz yuzu-68ddaaa2f5726e3619accee77b488ec285f3a2d7.tar.zst yuzu-68ddaaa2f5726e3619accee77b488ec285f3a2d7.zip |
Diffstat (limited to 'src/core/hle/kernel/thread.h')
-rw-r--r-- | src/core/hle/kernel/thread.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index bed9f714a..5fab1ab58 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h @@ -78,11 +78,16 @@ public: void ResumeFromWait(); /** - * Sets the output values after the thread awakens from WaitSynchronization - * @param return_val Value returned - * @param out_val Value to set to the output parameter + * Sets the result after the thread awakens (from either WaitSynchronization SVC) + * @param result Value to set to the returned result */ - void SetReturnValue(ResultCode return_val, s32 out_val); + void SetWaitSynchronizationResult(ResultCode result); + + /** + * Sets the output parameter value after the thread awakens (from WaitSynchronizationN SVC only) + * @param output Value to set to the output parameter + */ + void SetWaitSynchronizationOutput(s32 output); Core::ThreadContext context; @@ -100,8 +105,9 @@ public: std::vector<SharedPtr<WaitObject>> wait_objects; ///< Objects that the thread is waiting on - VAddr wait_address; ///< If waiting on an AddressArbiter, this is the arbitration address - bool wait_all; ///< True if the thread is waiting on all objects before resuming + VAddr wait_address; ///< If waiting on an AddressArbiter, this is the arbitration address + bool wait_all; ///< True if the thread is waiting on all objects before resuming + bool wait_set_output; ///< True if the output parameter should be set on thread wakeup std::string name; @@ -134,9 +140,10 @@ void WaitCurrentThread_Sleep(); /** * Waits the current thread from a WaitSynchronization call * @param wait_object Kernel object that we are waiting on + * @param wait_set_output If true, set the output parameter on thread wakeup (for WaitSynchronizationN only) * @param wait_all If true, wait on all objects before resuming (for WaitSynchronizationN only) */ -void WaitCurrentThread_WaitSynchronization(SharedPtr<WaitObject> wait_object, bool wait_all = false); +void WaitCurrentThread_WaitSynchronization(SharedPtr<WaitObject> wait_object, bool wait_set_output, bool wait_all); /** * Waits the current thread from an ArbitrateAddress call |