Explorar o código

Merge pull request #820 from Subv/creatememoryblock

Core/SVC: Map the shared memory created in CreateMemoryBlock to the specified address
bunnei %!s(int64=11) %!d(string=hai) anos
pai
achega
5bcff3b837
Modificáronse 1 ficheiros con 2 adicións e 0 borrados
  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;
     using Kernel::MemoryPermission;
     SharedPtr<SharedMemory> shared_memory = SharedMemory::Create(size,
     SharedPtr<SharedMemory> shared_memory = SharedMemory::Create(size,
             (MemoryPermission)my_permission, (MemoryPermission)other_permission);
             (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)));
     CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(shared_memory)));
 
 
     LOG_WARNING(Kernel_SVC, "(STUBBED) called addr=0x%08X", addr);
     LOG_WARNING(Kernel_SVC, "(STUBBED) called addr=0x%08X", addr);