diff options
| author | 2018-12-26 15:54:14 -0500 | |
|---|---|---|
| committer | 2018-12-26 15:54:14 -0500 | |
| commit | ae582b6669eed99e66829b1941152f0b8b073128 (patch) | |
| tree | 5aa768c110f6876823a61d31193cca58c103ddc6 /src/core/hle/kernel/thread.h | |
| parent | Merge pull request #1943 from ReinUsesLisp/fixup-texs (diff) | |
| parent | debugger: Set paused thread color (diff) | |
| download | yuzu-ae582b6669eed99e66829b1941152f0b8b073128.tar.gz yuzu-ae582b6669eed99e66829b1941152f0b8b073128.tar.xz yuzu-ae582b6669eed99e66829b1941152f0b8b073128.zip | |
Merge pull request #1849 from encounter/svcSetThreadActivity
svc: Implement SetThreadActivity (thread suspension)
Diffstat (limited to 'src/core/hle/kernel/thread.h')
| -rw-r--r-- | src/core/hle/kernel/thread.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index d6e7981d3..fe5398d56 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h | |||
| @@ -45,6 +45,7 @@ enum ThreadProcessorId : s32 { | |||
| 45 | enum class ThreadStatus { | 45 | enum class ThreadStatus { |
| 46 | Running, ///< Currently running | 46 | Running, ///< Currently running |
| 47 | Ready, ///< Ready to run | 47 | Ready, ///< Ready to run |
| 48 | Paused, ///< Paused by SetThreadActivity or debug | ||
| 48 | WaitHLEEvent, ///< Waiting for hle event to finish | 49 | WaitHLEEvent, ///< Waiting for hle event to finish |
| 49 | WaitSleep, ///< Waiting due to a SleepThread SVC | 50 | WaitSleep, ///< Waiting due to a SleepThread SVC |
| 50 | WaitIPC, ///< Waiting for the reply from an IPC request | 51 | WaitIPC, ///< Waiting for the reply from an IPC request |
| @@ -61,6 +62,11 @@ enum class ThreadWakeupReason { | |||
| 61 | Timeout // The thread was woken up due to a wait timeout. | 62 | Timeout // The thread was woken up due to a wait timeout. |
| 62 | }; | 63 | }; |
| 63 | 64 | ||
| 65 | enum class ThreadActivity : u32 { | ||
| 66 | Normal = 0, | ||
| 67 | Paused = 1, | ||
| 68 | }; | ||
| 69 | |||
| 64 | class Thread final : public WaitObject { | 70 | class Thread final : public WaitObject { |
| 65 | public: | 71 | public: |
| 66 | using TLSMemory = std::vector<u8>; | 72 | using TLSMemory = std::vector<u8>; |
| @@ -371,6 +377,12 @@ public: | |||
| 371 | return affinity_mask; | 377 | return affinity_mask; |
| 372 | } | 378 | } |
| 373 | 379 | ||
| 380 | ThreadActivity GetActivity() const { | ||
| 381 | return activity; | ||
| 382 | } | ||
| 383 | |||
| 384 | void SetActivity(ThreadActivity value); | ||
| 385 | |||
| 374 | private: | 386 | private: |
| 375 | explicit Thread(KernelCore& kernel); | 387 | explicit Thread(KernelCore& kernel); |
| 376 | ~Thread() override; | 388 | ~Thread() override; |
| @@ -439,6 +451,8 @@ private: | |||
| 439 | TLSMemoryPtr tls_memory = std::make_shared<TLSMemory>(); | 451 | TLSMemoryPtr tls_memory = std::make_shared<TLSMemory>(); |
| 440 | 452 | ||
| 441 | std::string name; | 453 | std::string name; |
| 454 | |||
| 455 | ThreadActivity activity = ThreadActivity::Normal; | ||
| 442 | }; | 456 | }; |
| 443 | 457 | ||
| 444 | /** | 458 | /** |