diff options
| author | 2018-07-22 12:48:44 -0400 | |
|---|---|---|
| committer | 2018-07-22 12:48:44 -0400 | |
| commit | 5fc99553d20d7d747730f7da4d12bdeb0593adb2 (patch) | |
| tree | 4f3217d3f564c47b8aeecac046e389ba6d3d07ed /src/core/core_cpu.h | |
| parent | Merge pull request #772 from MerryMage/dynarmic (diff) | |
| parent | Implement exclusive monitor (diff) | |
| download | yuzu-5fc99553d20d7d747730f7da4d12bdeb0593adb2.tar.gz yuzu-5fc99553d20d7d747730f7da4d12bdeb0593adb2.tar.xz yuzu-5fc99553d20d7d747730f7da4d12bdeb0593adb2.zip | |
Merge pull request #638 from MerryMage/mp
Implement exclusive monitor
Diffstat (limited to 'src/core/core_cpu.h')
| -rw-r--r-- | src/core/core_cpu.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/core/core_cpu.h b/src/core/core_cpu.h index 243f0b5e7..976952903 100644 --- a/src/core/core_cpu.h +++ b/src/core/core_cpu.h | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <mutex> | 10 | #include <mutex> |
| 11 | #include <string> | 11 | #include <string> |
| 12 | #include "common/common_types.h" | 12 | #include "common/common_types.h" |
| 13 | #include "core/arm/exclusive_monitor.h" | ||
| 13 | 14 | ||
| 14 | class ARM_Interface; | 15 | class ARM_Interface; |
| 15 | 16 | ||
| @@ -40,7 +41,8 @@ private: | |||
| 40 | 41 | ||
| 41 | class Cpu { | 42 | class Cpu { |
| 42 | public: | 43 | public: |
| 43 | Cpu(std::shared_ptr<CpuBarrier> cpu_barrier, size_t core_index); | 44 | Cpu(std::shared_ptr<ExclusiveMonitor> exclusive_monitor, |
| 45 | std::shared_ptr<CpuBarrier> cpu_barrier, size_t core_index); | ||
| 44 | 46 | ||
| 45 | void RunLoop(bool tight_loop = true); | 47 | void RunLoop(bool tight_loop = true); |
| 46 | 48 | ||
| @@ -64,6 +66,12 @@ public: | |||
| 64 | return core_index == 0; | 66 | return core_index == 0; |
| 65 | } | 67 | } |
| 66 | 68 | ||
| 69 | size_t CoreIndex() const { | ||
| 70 | return core_index; | ||
| 71 | } | ||
| 72 | |||
| 73 | static std::shared_ptr<ExclusiveMonitor> MakeExclusiveMonitor(size_t num_cores); | ||
| 74 | |||
| 67 | private: | 75 | private: |
| 68 | void Reschedule(); | 76 | void Reschedule(); |
| 69 | 77 | ||