diff options
author | bunnei <bunneidev@gmail.com> | 2018-08-30 16:02:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-30 16:02:50 +0200 |
commit | 5094dfa081c7275e35496374a42996b11f0f6005 (patch) | |
tree | 8cdfb8c270c6299a1b172fb9c14856684bedf084 /src/core/hle/kernel/shared_memory.h | |
parent | Merge pull request #1202 from FearlessTobi/port-3825 (diff) | |
parent | kernel: Eliminate kernel global state (diff) | |
download | yuzu-5094dfa081c7275e35496374a42996b11f0f6005.tar yuzu-5094dfa081c7275e35496374a42996b11f0f6005.tar.gz yuzu-5094dfa081c7275e35496374a42996b11f0f6005.tar.bz2 yuzu-5094dfa081c7275e35496374a42996b11f0f6005.tar.lz yuzu-5094dfa081c7275e35496374a42996b11f0f6005.tar.xz yuzu-5094dfa081c7275e35496374a42996b11f0f6005.tar.zst yuzu-5094dfa081c7275e35496374a42996b11f0f6005.zip |
Diffstat (limited to 'src/core/hle/kernel/shared_memory.h')
-rw-r--r-- | src/core/hle/kernel/shared_memory.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/core/hle/kernel/shared_memory.h b/src/core/hle/kernel/shared_memory.h index c50fee615..2c729afe3 100644 --- a/src/core/hle/kernel/shared_memory.h +++ b/src/core/hle/kernel/shared_memory.h @@ -15,6 +15,8 @@ namespace Kernel { +class KernelCore; + /// Permissions for mapped shared memory blocks enum class MemoryPermission : u32 { None = 0, @@ -32,6 +34,7 @@ class SharedMemory final : public Object { public: /** * Creates a shared memory object. + * @param kernel The kernel instance to create a shared memory instance under. * @param owner_process Process that created this shared memory object. * @param size Size of the memory block. Must be page-aligned. * @param permissions Permission restrictions applied to the process which created the block. @@ -42,14 +45,15 @@ public: * linear heap. * @param name Optional object name, used for debugging purposes. */ - static SharedPtr<SharedMemory> Create(SharedPtr<Process> owner_process, u64 size, - MemoryPermission permissions, + static SharedPtr<SharedMemory> Create(KernelCore& kernel, SharedPtr<Process> owner_process, + u64 size, MemoryPermission permissions, MemoryPermission other_permissions, VAddr address = 0, MemoryRegion region = MemoryRegion::BASE, std::string name = "Unknown"); /** * Creates a shared memory object from a block of memory managed by an HLE applet. + * @param kernel The kernel instance to create a shared memory instance under. * @param heap_block Heap block of the HLE applet. * @param offset The offset into the heap block that the SharedMemory will map. * @param size Size of the memory block. Must be page-aligned. @@ -58,7 +62,8 @@ public: * block. * @param name Optional object name, used for debugging purposes. */ - static SharedPtr<SharedMemory> CreateForApplet(std::shared_ptr<std::vector<u8>> heap_block, + static SharedPtr<SharedMemory> CreateForApplet(KernelCore& kernel, + std::shared_ptr<std::vector<u8>> heap_block, u32 offset, u32 size, MemoryPermission permissions, MemoryPermission other_permissions, @@ -125,7 +130,7 @@ public: std::string name; private: - SharedMemory(); + explicit SharedMemory(KernelCore& kernel); ~SharedMemory() override; }; |