diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index 3408658e5a..aeb20b24b0 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp @@ -410,7 +410,7 @@ ResultCode Thread::SetCoreAndAffinityMask(s32 new_core, u64 new_affinity_mask) { }; const bool use_override = affinity_override_count != 0; - if (new_core == static_cast(CoreFlags::DontChangeIdealCore)) { + if (new_core == THREADDONTCHANGE_IDEAL) { new_core = use_override ? ideal_core_override : ideal_core; if ((new_affinity_mask & (1ULL << new_core)) == 0) { return ERR_INVALID_COMBINATION; @@ -452,7 +452,7 @@ void Thread::AdjustSchedulingOnStatus(u32 old_flags) { for (s32 core = 0; core < GlobalScheduler::NUM_CPU_CORES; core++) { if (core != processor_id && ((affinity_mask >> core) & 1) != 0) { - scheduler.Unsuggest(current_priority, core, this); + scheduler.Unsuggest(current_priority, static_cast(core), this); } } } else if (GetSchedulingStatus() == ThreadSchedStatus::Runnable) { @@ -463,7 +463,7 @@ void Thread::AdjustSchedulingOnStatus(u32 old_flags) { for (s32 core = 0; core < GlobalScheduler::NUM_CPU_CORES; core++) { if (core != processor_id && ((affinity_mask >> core) & 1) != 0) { - scheduler.Suggest(current_priority, core, this); + scheduler.Suggest(current_priority, static_cast(core), this); } } } diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index e0f3b62047..7ee437e174 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h @@ -35,6 +35,9 @@ enum ThreadProcessorId : s32 { /// Run thread on the ideal core specified by the process. THREADPROCESSORID_IDEAL = -2, + /// when setting Core and Affiny, keeps the ideal core intact + THREADDONTCHANGE_IDEAL = -3, + /// Indicates that the preferred processor ID shouldn't be updated in /// a core mask setting operation. THREADPROCESSORID_DONT_UPDATE = -3, @@ -95,12 +98,6 @@ enum class ThreadSchedMasks : u32 { ForcePauseMask = 0x0070, }; -enum class CoreFlags : s32 { - IgnoreIdealCore = -1, - ProcessIdealCore = -2, - DontChangeIdealCore = -3, -}; - class Thread final : public WaitObject { public: using MutexWaitingThreads = std::vector>;