summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/transfer_memory.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-01-31 04:39:07 +0100
committerbunnei <bunneidev@gmail.com>2020-02-06 05:06:54 +0100
commitba53543da6126b5fe7b3f26e2688272cf11024a3 (patch)
tree6056b75468249a9841a0e521d7a381efd087e0f2 /src/core/hle/kernel/transfer_memory.h
parentwait_object: Make wait behavior only require one object to signal. (diff)
downloadyuzu-ba53543da6126b5fe7b3f26e2688272cf11024a3.tar
yuzu-ba53543da6126b5fe7b3f26e2688272cf11024a3.tar.gz
yuzu-ba53543da6126b5fe7b3f26e2688272cf11024a3.tar.bz2
yuzu-ba53543da6126b5fe7b3f26e2688272cf11024a3.tar.lz
yuzu-ba53543da6126b5fe7b3f26e2688272cf11024a3.tar.xz
yuzu-ba53543da6126b5fe7b3f26e2688272cf11024a3.tar.zst
yuzu-ba53543da6126b5fe7b3f26e2688272cf11024a3.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/transfer_memory.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/core/hle/kernel/transfer_memory.h b/src/core/hle/kernel/transfer_memory.h
index 0a6e15d18..6e388536a 100644
--- a/src/core/hle/kernel/transfer_memory.h
+++ b/src/core/hle/kernel/transfer_memory.h
@@ -11,6 +11,10 @@
union ResultCode;
+namespace Memory {
+class Memory;
+}
+
namespace Kernel {
class KernelCore;
@@ -26,12 +30,13 @@ enum class MemoryPermission : u32;
///
class TransferMemory final : public Object {
public:
- explicit TransferMemory(KernelCore& kernel);
+ explicit TransferMemory(KernelCore& kernel, Memory::Memory& memory);
~TransferMemory() override;
static constexpr HandleType HANDLE_TYPE = HandleType::TransferMemory;
- static std::shared_ptr<TransferMemory> Create(KernelCore& kernel, VAddr base_address, u64 size,
+ static std::shared_ptr<TransferMemory> Create(KernelCore& kernel, Memory::Memory& memory,
+ VAddr base_address, u64 size,
MemoryPermission permissions);
TransferMemory(const TransferMemory&) = delete;
@@ -80,6 +85,14 @@ public:
///
ResultCode UnmapMemory(VAddr address, u64 size);
+ /// Reserves the region to be used for the transfer memory, called after the transfer memory is
+ /// created.
+ ResultCode Reserve();
+
+ /// Resets the region previously used for the transfer memory, called after the transfer memory
+ /// is closed.
+ ResultCode Reset();
+
private:
/// Memory block backing this instance.
std::shared_ptr<PhysicalMemory> backing_block;
@@ -98,6 +111,8 @@ private:
/// Whether or not this transfer memory instance has mapped memory.
bool is_mapped = false;
+
+ Memory::Memory& memory;
};
} // namespace Kernel