瀏覽代碼

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).
Subv 11 年之前
父節點
當前提交
732839b1f4
共有 1 個文件被更改,包括 2 次插入0 次删除
  1. 2 0
      src/core/hle/svc.cpp

+ 2 - 0
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);