diff options
author | bunnei <bunneidev@gmail.com> | 2018-02-03 19:36:54 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-02-03 19:36:54 +0100 |
commit | 647364db8fa7792b640a035d410feb12e3fde848 (patch) | |
tree | 0fafe09f290bbb8872aaa0c2817e006c1acfe337 | |
parent | ArbitrateLock: Assert that requesting_thread is current_thread. (diff) | |
download | yuzu-647364db8fa7792b640a035d410feb12e3fde848.tar yuzu-647364db8fa7792b640a035d410feb12e3fde848.tar.gz yuzu-647364db8fa7792b640a035d410feb12e3fde848.tar.bz2 yuzu-647364db8fa7792b640a035d410feb12e3fde848.tar.lz yuzu-647364db8fa7792b640a035d410feb12e3fde848.tar.xz yuzu-647364db8fa7792b640a035d410feb12e3fde848.tar.zst yuzu-647364db8fa7792b640a035d410feb12e3fde848.zip |
-rw-r--r-- | src/core/hle/kernel/shared_memory.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/kernel/shared_memory.h | 4 | ||||
-rw-r--r-- | src/core/hle/kernel/svc.cpp | 16 |
3 files changed, 11 insertions, 11 deletions
diff --git a/src/core/hle/kernel/shared_memory.cpp b/src/core/hle/kernel/shared_memory.cpp index f8aa429dc..835fc710b 100644 --- a/src/core/hle/kernel/shared_memory.cpp +++ b/src/core/hle/kernel/shared_memory.cpp @@ -14,7 +14,7 @@ namespace Kernel { SharedMemory::SharedMemory() {} SharedMemory::~SharedMemory() {} -SharedPtr<SharedMemory> SharedMemory::Create(SharedPtr<Process> owner_process, u32 size, +SharedPtr<SharedMemory> SharedMemory::Create(SharedPtr<Process> owner_process, u64 size, MemoryPermission permissions, MemoryPermission other_permissions, VAddr address, MemoryRegion region, std::string name) { diff --git a/src/core/hle/kernel/shared_memory.h b/src/core/hle/kernel/shared_memory.h index e948819c0..86f818e90 100644 --- a/src/core/hle/kernel/shared_memory.h +++ b/src/core/hle/kernel/shared_memory.h @@ -39,7 +39,7 @@ public: * linear heap. * @param name Optional object name, used for debugging purposes. */ - static SharedPtr<SharedMemory> Create(SharedPtr<Process> owner_process, u32 size, + static SharedPtr<SharedMemory> Create(SharedPtr<Process> owner_process, u64 size, MemoryPermission permissions, MemoryPermission other_permissions, VAddr address = 0, MemoryRegion region = MemoryRegion::BASE, @@ -116,7 +116,7 @@ public: /// Offset into the backing block for this shared memory. size_t backing_block_offset; /// Size of the memory block. Page-aligned. - u32 size; + u64 size; /// Permission restrictions applied to the process which created the block. MemoryPermission permissions; /// Permission restrictions applied to other processes mapping the block. diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index f516927cd..4e395ed31 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -416,8 +416,7 @@ static ResultCode MapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 s "called, shared_memory_handle=0x%08X, addr=0x%llx, size=0x%llx, permissions=0x%08X", shared_memory_handle, addr, size, permissions); - SharedPtr<SharedMemory> shared_memory = - Kernel::g_handle_table.Get<SharedMemory>(shared_memory_handle); + SharedPtr<SharedMemory> shared_memory = g_handle_table.Get<SharedMemory>(shared_memory_handle); if (!shared_memory) { return ERR_INVALID_HANDLE; } @@ -432,7 +431,7 @@ static ResultCode MapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 s case MemoryPermission::WriteExecute: case MemoryPermission::ReadWriteExecute: case MemoryPermission::DontCare: - return shared_memory->Map(Kernel::g_current_process.get(), addr, permissions_type, + return shared_memory->Map(g_current_process.get(), addr, permissions_type, MemoryPermission::DontCare); default: LOG_ERROR(Kernel_SVC, "unknown permissions=0x%08X", permissions); @@ -739,13 +738,14 @@ static ResultCode SetThreadCoreMask(u64, u64, u64) { return RESULT_SUCCESS; } -static ResultCode CreateSharedMemory(Handle* handle, u64 sz, u32 local_permissions, +static ResultCode CreateSharedMemory(Handle* handle, u64 size, u32 local_permissions, u32 remote_permissions) { - LOG_TRACE(Kernel_SVC, "called, sz=0x%llx, localPerms=0x%08x, remotePerms=0x%08x", sz, + LOG_TRACE(Kernel_SVC, "called, size=0x%llx, localPerms=0x%08x, remotePerms=0x%08x", size, local_permissions, remote_permissions); - auto sharedMemHandle = SharedMemory::Create( - g_handle_table.Get<Process>(KernelHandle::CurrentProcess), sz, - (Kernel::MemoryPermission)local_permissions, (Kernel::MemoryPermission)remote_permissions); + auto sharedMemHandle = + SharedMemory::Create(g_handle_table.Get<Process>(KernelHandle::CurrentProcess), size, + static_cast<MemoryPermission>(local_permissions), + static_cast<MemoryPermission>(remote_permissions)); CASCADE_RESULT(*handle, g_handle_table.Create(sharedMemHandle)); return RESULT_SUCCESS; |