aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Subv <subv2112@gmail.com>2015-05-25 16:17:26 -0500
committerGravatar Subv <subv2112@gmail.com>2015-05-25 16:17:26 -0500
commit732839b1f48c255497c187c94a42c29afd43e3b2 (patch)
tree75d35066309e7bcdc7a0e90fbb0449da3f4e2d0e
parent33c57361a906425d004fe6e194c85b08a83bc5f6 (diff)
Core/SVC: Map the shared memory created in CreateMemoryBlock to the specified address.
This SharedMemory can be passed to service functions (Which should map the memory into their own address space).
-rw-r--r--src/core/hle/svc.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp
index 347d241f..ca3ff332 100644
--- a/src/core/hle/svc.cpp
+++ b/src/core/hle/svc.cpp
@@ -654,6 +654,8 @@ static ResultCode CreateMemoryBlock(Handle* out_handle, u32 addr, u32 size, u32
using Kernel::MemoryPermission;
SharedPtr<SharedMemory> shared_memory = SharedMemory::Create(size,
(MemoryPermission)my_permission, (MemoryPermission)other_permission);
+ // Map the SharedMemory to the specified address
+ shared_memory->base_address = addr;
CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(shared_memory)));
LOG_WARNING(Kernel_SVC, "(STUBBED) called addr=0x%08X", addr);