summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-10-12 16:38:55 +0200
committerFernandoS27 <fsahmkow27@gmail.com>2019-10-15 17:55:28 +0200
commite28c7f521765a85e27259539f0873b15c18a98f8 (patch)
tree86f1603d3bbdf08680ecf0a9886485597554c949
parentKernel: Clang Format (diff)
downloadyuzu-e28c7f521765a85e27259539f0873b15c18a98f8.tar
yuzu-e28c7f521765a85e27259539f0873b15c18a98f8.tar.gz
yuzu-e28c7f521765a85e27259539f0873b15c18a98f8.tar.bz2
yuzu-e28c7f521765a85e27259539f0873b15c18a98f8.tar.lz
yuzu-e28c7f521765a85e27259539f0873b15c18a98f8.tar.xz
yuzu-e28c7f521765a85e27259539f0873b15c18a98f8.tar.zst
yuzu-e28c7f521765a85e27259539f0873b15c18a98f8.zip
-rw-r--r--src/core/hle/kernel/thread.cpp6
-rw-r--r--src/core/hle/kernel/thread.h9
2 files changed, 6 insertions, 9 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index 3408658e5..aeb20b24b 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<s32>(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<u32>(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<u32>(core), this);
}
}
}
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h
index e0f3b6204..7ee437e17 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<SharedPtr<Thread>>;