summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/thread.h
diff options
context:
space:
mode:
authorGravatar bunnei2018-12-26 15:54:14 -0500
committerGravatar GitHub2018-12-26 15:54:14 -0500
commitae582b6669eed99e66829b1941152f0b8b073128 (patch)
tree5aa768c110f6876823a61d31193cca58c103ddc6 /src/core/hle/kernel/thread.h
parentMerge pull request #1943 from ReinUsesLisp/fixup-texs (diff)
parentdebugger: Set paused thread color (diff)
downloadyuzu-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.h14
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 {
45enum class ThreadStatus { 45enum 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
65enum class ThreadActivity : u32 {
66 Normal = 0,
67 Paused = 1,
68};
69
64class Thread final : public WaitObject { 70class Thread final : public WaitObject {
65public: 71public:
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
374private: 386private:
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/**