summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r--src/core/hle/kernel/k_affinity_mask.h30
1 files changed, 13 insertions, 17 deletions
diff --git a/src/core/hle/kernel/k_affinity_mask.h b/src/core/hle/kernel/k_affinity_mask.h
index fa2a720a4..dd73781cd 100644
--- a/src/core/hle/kernel/k_affinity_mask.h
+++ b/src/core/hle/kernel/k_affinity_mask.h
@@ -14,24 +14,10 @@
14namespace Kernel { 14namespace Kernel {
15 15
16class KAffinityMask { 16class KAffinityMask {
17private:
18 static constexpr u64 AllowedAffinityMask = (1ul << Core::Hardware::NUM_CPU_CORES) - 1;
19
20private:
21 u64 mask;
22
23private:
24 static constexpr u64 GetCoreBit(s32 core) {
25 ASSERT(0 <= core && core < static_cast<s32>(Core::Hardware::NUM_CPU_CORES));
26 return (1ull << core);
27 }
28
29public: 17public:
30 constexpr KAffinityMask() : mask(0) { 18 constexpr KAffinityMask() = default;
31 ASSERT(this);
32 }
33 19
34 constexpr u64 GetAffinityMask() const { 20 [[nodiscard]] constexpr u64 GetAffinityMask() const {
35 return this->mask; 21 return this->mask;
36 } 22 }
37 23
@@ -40,7 +26,7 @@ public:
40 this->mask = new_mask; 26 this->mask = new_mask;
41 } 27 }
42 28
43 constexpr bool GetAffinity(s32 core) const { 29 [[nodiscard]] constexpr bool GetAffinity(s32 core) const {
44 return this->mask & GetCoreBit(core); 30 return this->mask & GetCoreBit(core);
45 } 31 }
46 32
@@ -57,6 +43,16 @@ public:
57 constexpr void SetAll() { 43 constexpr void SetAll() {
58 this->mask = AllowedAffinityMask; 44 this->mask = AllowedAffinityMask;
59 } 45 }
46
47private:
48 [[nodiscard]] static constexpr u64 GetCoreBit(s32 core) {
49 ASSERT(0 <= core && core < static_cast<s32>(Core::Hardware::NUM_CPU_CORES));
50 return (1ULL << core);
51 }
52
53 static constexpr u64 AllowedAffinityMask = (1ULL << Core::Hardware::NUM_CPU_CORES) - 1;
54
55 u64 mask{};
60}; 56};
61 57
62} // namespace Kernel 58} // namespace Kernel