summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/thread.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-10-12 16:13:25 +0200
committerFernandoS27 <fsahmkow27@gmail.com>2019-10-15 17:55:25 +0200
commit3073615dbc214a53badc88da68eecbaaa73898de (patch)
tree78926945e9c645bbcdebfba7dc3d216678dae547 /src/core/hle/kernel/thread.h
parentKernel Scheduler: Make sure the global scheduler shutdowns correctly. (diff)
downloadyuzu-3073615dbc214a53badc88da68eecbaaa73898de.tar
yuzu-3073615dbc214a53badc88da68eecbaaa73898de.tar.gz
yuzu-3073615dbc214a53badc88da68eecbaaa73898de.tar.bz2
yuzu-3073615dbc214a53badc88da68eecbaaa73898de.tar.lz
yuzu-3073615dbc214a53badc88da68eecbaaa73898de.tar.xz
yuzu-3073615dbc214a53badc88da68eecbaaa73898de.tar.zst
yuzu-3073615dbc214a53badc88da68eecbaaa73898de.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/thread.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h
index ceb4d5159..e0f3b6204 100644
--- a/src/core/hle/kernel/thread.h
+++ b/src/core/hle/kernel/thread.h
@@ -82,19 +82,25 @@ enum class ThreadSchedStatus : u32 {
Exited = 3,
};
-enum ThreadSchedFlags : u32 {
+enum class ThreadSchedFlags : u32 {
ProcessPauseFlag = 1 << 4,
ThreadPauseFlag = 1 << 5,
ProcessDebugPauseFlag = 1 << 6,
KernelInitPauseFlag = 1 << 8,
};
-enum ThreadSchedMasks : u32 {
+enum class ThreadSchedMasks : u32 {
LowMask = 0x000f,
HighMask = 0xfff0,
ForcePauseMask = 0x0070,
};
+enum class CoreFlags : s32 {
+ IgnoreIdealCore = -1,
+ ProcessIdealCore = -2,
+ DontChangeIdealCore = -3,
+};
+
class Thread final : public WaitObject {
public:
using MutexWaitingThreads = std::vector<SharedPtr<Thread>>;
@@ -428,7 +434,8 @@ public:
}
ThreadSchedStatus GetSchedulingStatus() const {
- return static_cast<ThreadSchedStatus>(scheduling_state & ThreadSchedMasks::LowMask);
+ return static_cast<ThreadSchedStatus>(scheduling_state &
+ static_cast<u32>(ThreadSchedMasks::LowMask));
}
bool IsRunning() const {
@@ -471,7 +478,8 @@ private:
u64 total_cpu_time_ticks = 0; ///< Total CPU running ticks.
u64 last_running_ticks = 0; ///< CPU tick when thread was last running
- u64 yield_count = 0; ///< Number of innecessaries yields occured.
+ u64 yield_count = 0; ///< Number of redundant yields carried by this thread.
+ ///< a redundant yield is one where no scheduling is changed
s32 processor_id = 0;