diff options
| author | Mat M <mathew1800@gmail.com> | 2018-07-22 12:48:44 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-22 12:48:44 -0400 |
| commit | 5fc99553d20d7d747730f7da4d12bdeb0593adb2 (patch) | |
| tree | 4f3217d3f564c47b8aeecac046e389ba6d3d07ed /src/core/core_cpu.h | |
| parent | 3e2b32a3ee4ee6c212972c544d7844632d202fd9 (diff) | |
| parent | 0b1c2e5505c6478ef10e65c0b002eeb242e15540 (diff) | |
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 @@ #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(); |
