diff options
| author | MerryMage <MerryMage@users.noreply.github.com> | 2018-07-03 14:28:46 +0100 |
|---|---|---|
| committer | MerryMage <MerryMage@users.noreply.github.com> | 2018-07-22 15:55:17 +0100 |
| commit | 0b1c2e5505c6478ef10e65c0b002eeb242e15540 (patch) | |
| tree | 187eeabceb451d3cd89b3f0fd47412a7a9e57015 /src/core/core_cpu.h | |
| parent | 258a5cee8429f4f4a3a7a0ead64d20269470392c (diff) | |
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 @@ #include <mutex> #include <string> #include "common/common_types.h" +#include "core/arm/exclusive_monitor.h" class ARM_Interface; @@ -40,7 +41,8 @@ private: class Cpu { public: - Cpu(std::shared_ptr<CpuBarrier> cpu_barrier, size_t core_index); + Cpu(std::shared_ptr<ExclusiveMonitor> exclusive_monitor, + std::shared_ptr<CpuBarrier> cpu_barrier, size_t core_index); void RunLoop(bool tight_loop = true); @@ -64,6 +66,12 @@ public: return core_index == 0; } + size_t CoreIndex() const { + return core_index; + } + + static std::shared_ptr<ExclusiveMonitor> MakeExclusiveMonitor(size_t num_cores); + private: void Reschedule(); |
