summaryrefslogtreecommitdiffstats
path: root/src/core/arm/exclusive_monitor.h
diff options
context:
space:
mode:
authorMerryMage <MerryMage@users.noreply.github.com>2018-07-03 15:28:46 +0200
committerMerryMage <MerryMage@users.noreply.github.com>2018-07-22 16:55:17 +0200
commit0b1c2e5505c6478ef10e65c0b002eeb242e15540 (patch)
tree187eeabceb451d3cd89b3f0fd47412a7a9e57015 /src/core/arm/exclusive_monitor.h
parentMerge pull request #765 from lioncash/file (diff)
downloadyuzu-0b1c2e5505c6478ef10e65c0b002eeb242e15540.tar
yuzu-0b1c2e5505c6478ef10e65c0b002eeb242e15540.tar.gz
yuzu-0b1c2e5505c6478ef10e65c0b002eeb242e15540.tar.bz2
yuzu-0b1c2e5505c6478ef10e65c0b002eeb242e15540.tar.lz
yuzu-0b1c2e5505c6478ef10e65c0b002eeb242e15540.tar.xz
yuzu-0b1c2e5505c6478ef10e65c0b002eeb242e15540.tar.zst
yuzu-0b1c2e5505c6478ef10e65c0b002eeb242e15540.zip
Diffstat (limited to 'src/core/arm/exclusive_monitor.h')
-rw-r--r--src/core/arm/exclusive_monitor.h23
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;
+};