diff options
| author | bunnei <bunneidev@gmail.com> | 2018-02-03 13:36:54 -0500 | 
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2018-02-03 13:36:54 -0500 | 
| commit | 647364db8fa7792b640a035d410feb12e3fde848 (patch) | |
| tree | 0fafe09f290bbb8872aaa0c2817e006c1acfe337 /src/core/hle | |
| parent | f9c9ce20050a2aad66d40d0f49bf97065b624848 (diff) | |
svc: SharedMemory size should be 64-bits and cleanup.
Diffstat (limited to 'src/core/hle')
| -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; | 
