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/arm/exclusive_monitor.h | |
| parent | 3e2b32a3ee4ee6c212972c544d7844632d202fd9 (diff) | |
| parent | 0b1c2e5505c6478ef10e65c0b002eeb242e15540 (diff) | |
Merge pull request #638 from MerryMage/mp
Implement exclusive monitor
Diffstat (limited to 'src/core/arm/exclusive_monitor.h')
| -rw-r--r-- | src/core/arm/exclusive_monitor.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/core/arm/exclusive_monitor.h b/src/core/arm/exclusive_monitor.h new file mode 100644 index 000000000..acfcdb94c --- /dev/null +++ b/src/core/arm/exclusive_monitor.h @@ -0,0 +1,23 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <array> +#include "common/common_types.h" + +class ExclusiveMonitor { +public: + virtual ~ExclusiveMonitor(); + + virtual void SetExclusive(size_t core_index, u64 addr) = 0; + virtual void ClearExclusive() = 0; + + virtual bool ExclusiveWrite8(size_t core_index, u64 vaddr, u8 value) = 0; + virtual bool ExclusiveWrite16(size_t core_index, u64 vaddr, u16 value) = 0; + virtual bool ExclusiveWrite32(size_t core_index, u64 vaddr, u32 value) = 0; + virtual bool ExclusiveWrite64(size_t core_index, u64 vaddr, u64 value) = 0; + virtual bool ExclusiveWrite128(size_t core_index, u64 vaddr, + std::array<std::uint64_t, 2> value) = 0; +}; |
