aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/transfer_memory.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-02-05 23:26:32 -0500
committerGitHub <noreply@github.com>2020-02-05 23:26:32 -0500
commit1b01c3036d2907667def43b26b8797e619508e04 (patch)
tree6056b75468249a9841a0e521d7a381efd087e0f2 /src/core/hle/kernel/transfer_memory.h
parenta0b4be426271ca497d8c113bd0ace3c95a6a35ad (diff)
parentba53543da6126b5fe7b3f26e2688272cf11024a3 (diff)
Merge pull request #3366 from bunnei/swkbd-fixes
applets: Fixes for software keyboard and transfer memory.
Diffstat (limited to 'src/core/hle/kernel/transfer_memory.h')
-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