diff options
| author | bunnei <bunneidev@gmail.com> | 2016-05-13 15:33:44 -0400 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2016-05-13 15:33:44 -0400 |
| commit | 18b517e236b7f6710567e57dab6a7c5329db948f (patch) | |
| tree | 5257e9ace394fa6062768c27b95e807df87c61b2 /src/core/hle/service/csnd_snd.cpp | |
| parent | 193ea9df29e40f8ba3f75a9b8abb92e760e943d0 (diff) | |
| parent | ac2de12ed8a7cc2759e25325f388db92b3f356a6 (diff) | |
Merge pull request #1689 from Subv/shmem
Kernel: Implemented shared memory.
Diffstat (limited to 'src/core/hle/service/csnd_snd.cpp')
| -rw-r--r-- | src/core/hle/service/csnd_snd.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/core/hle/service/csnd_snd.cpp b/src/core/hle/service/csnd_snd.cpp index 6318bf2a7..d2bb8941c 100644 --- a/src/core/hle/service/csnd_snd.cpp +++ b/src/core/hle/service/csnd_snd.cpp @@ -3,6 +3,7 @@ // Refer to the license.txt file included. #include <cstring> +#include "common/alignment.h" #include "core/hle/hle.h" #include "core/hle/kernel/mutex.h" #include "core/hle/kernel/shared_memory.h" @@ -41,14 +42,16 @@ static Kernel::SharedPtr<Kernel::Mutex> mutex = nullptr; void Initialize(Service::Interface* self) { u32* cmd_buff = Kernel::GetCommandBuffer(); - shared_memory = Kernel::SharedMemory::Create(cmd_buff[1], - Kernel::MemoryPermission::ReadWrite, - Kernel::MemoryPermission::ReadWrite, "CSNDSharedMem"); + u32 size = Common::AlignUp(cmd_buff[1], Memory::PAGE_SIZE); + using Kernel::MemoryPermission; + shared_memory = Kernel::SharedMemory::Create(nullptr, size, + MemoryPermission::ReadWrite, MemoryPermission::ReadWrite, + 0, Kernel::MemoryRegion::BASE, "CSND:SharedMemory"); mutex = Kernel::Mutex::Create(false); - cmd_buff[1] = 0; - cmd_buff[2] = 0x4000000; + cmd_buff[1] = RESULT_SUCCESS.raw; + cmd_buff[2] = IPC::MoveHandleDesc(2); cmd_buff[3] = Kernel::g_handle_table.Create(mutex).MoveFrom(); cmd_buff[4] = Kernel::g_handle_table.Create(shared_memory).MoveFrom(); } |
