Quellcode durchsuchen

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 vor 11 Jahren
Ursprung
Commit
732839b1f4
1 geänderte Dateien mit 2 neuen und 0 gelöschten Zeilen
  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);