diff options
| -rw-r--r-- | src/core/hle/kernel/shared_memory.cpp | 14 | ||||
| -rw-r--r-- | src/core/hle/kernel/shared_memory.h | 6 | ||||
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 4 |
3 files changed, 12 insertions, 12 deletions
diff --git a/src/core/hle/kernel/shared_memory.cpp b/src/core/hle/kernel/shared_memory.cpp index b8bcc16ee..0494581f5 100644 --- a/src/core/hle/kernel/shared_memory.cpp +++ b/src/core/hle/kernel/shared_memory.cpp | |||
| @@ -78,10 +78,10 @@ SharedPtr<SharedMemory> SharedMemory::CreateForApplet( | |||
| 78 | return shared_memory; | 78 | return shared_memory; |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | ResultCode SharedMemory::Map(Process* target_process, VAddr address, MemoryPermission permissions, | 81 | ResultCode SharedMemory::Map(Process& target_process, VAddr address, MemoryPermission permissions, |
| 82 | MemoryPermission other_permissions) { | 82 | MemoryPermission other_permissions) { |
| 83 | const MemoryPermission own_other_permissions = | 83 | const MemoryPermission own_other_permissions = |
| 84 | target_process == owner_process ? this->permissions : this->other_permissions; | 84 | &target_process == owner_process ? this->permissions : this->other_permissions; |
| 85 | 85 | ||
| 86 | // Automatically allocated memory blocks can only be mapped with other_permissions = DontCare | 86 | // Automatically allocated memory blocks can only be mapped with other_permissions = DontCare |
| 87 | if (base_address == 0 && other_permissions != MemoryPermission::DontCare) { | 87 | if (base_address == 0 && other_permissions != MemoryPermission::DontCare) { |
| @@ -106,7 +106,7 @@ ResultCode SharedMemory::Map(Process* target_process, VAddr address, MemoryPermi | |||
| 106 | VAddr target_address = address; | 106 | VAddr target_address = address; |
| 107 | 107 | ||
| 108 | // Map the memory block into the target process | 108 | // Map the memory block into the target process |
| 109 | auto result = target_process->VMManager().MapMemoryBlock( | 109 | auto result = target_process.VMManager().MapMemoryBlock( |
| 110 | target_address, backing_block, backing_block_offset, size, MemoryState::Shared); | 110 | target_address, backing_block, backing_block_offset, size, MemoryState::Shared); |
| 111 | if (result.Failed()) { | 111 | if (result.Failed()) { |
| 112 | LOG_ERROR( | 112 | LOG_ERROR( |
| @@ -116,14 +116,14 @@ ResultCode SharedMemory::Map(Process* target_process, VAddr address, MemoryPermi | |||
| 116 | return result.Code(); | 116 | return result.Code(); |
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | return target_process->VMManager().ReprotectRange(target_address, size, | 119 | return target_process.VMManager().ReprotectRange(target_address, size, |
| 120 | ConvertPermissions(permissions)); | 120 | ConvertPermissions(permissions)); |
| 121 | } | 121 | } |
| 122 | 122 | ||
| 123 | ResultCode SharedMemory::Unmap(Process* target_process, VAddr address) { | 123 | ResultCode SharedMemory::Unmap(Process& target_process, VAddr address) { |
| 124 | // TODO(Subv): Verify what happens if the application tries to unmap an address that is not | 124 | // TODO(Subv): Verify what happens if the application tries to unmap an address that is not |
| 125 | // mapped to a SharedMemory. | 125 | // mapped to a SharedMemory. |
| 126 | return target_process->VMManager().UnmapRange(address, size); | 126 | return target_process.VMManager().UnmapRange(address, size); |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | VMAPermission SharedMemory::ConvertPermissions(MemoryPermission permission) { | 129 | VMAPermission SharedMemory::ConvertPermissions(MemoryPermission permission) { |
diff --git a/src/core/hle/kernel/shared_memory.h b/src/core/hle/kernel/shared_memory.h index f3b05e48b..0b48db699 100644 --- a/src/core/hle/kernel/shared_memory.h +++ b/src/core/hle/kernel/shared_memory.h | |||
| @@ -99,16 +99,16 @@ public: | |||
| 99 | * @param permissions Memory block map permissions (specified by SVC field) | 99 | * @param permissions Memory block map permissions (specified by SVC field) |
| 100 | * @param other_permissions Memory block map other permissions (specified by SVC field) | 100 | * @param other_permissions Memory block map other permissions (specified by SVC field) |
| 101 | */ | 101 | */ |
| 102 | ResultCode Map(Process* target_process, VAddr address, MemoryPermission permissions, | 102 | ResultCode Map(Process& target_process, VAddr address, MemoryPermission permissions, |
| 103 | MemoryPermission other_permissions); | 103 | MemoryPermission other_permissions); |
| 104 | 104 | ||
| 105 | /** | 105 | /** |
| 106 | * Unmaps a shared memory block from the specified address in system memory | 106 | * Unmaps a shared memory block from the specified address in system memory |
| 107 | * @param target_process Process from which to umap the memory block. | 107 | * @param target_process Process from which to unmap the memory block. |
| 108 | * @param address Address in system memory where the shared memory block is mapped | 108 | * @param address Address in system memory where the shared memory block is mapped |
| 109 | * @return Result code of the unmap operation | 109 | * @return Result code of the unmap operation |
| 110 | */ | 110 | */ |
| 111 | ResultCode Unmap(Process* target_process, VAddr address); | 111 | ResultCode Unmap(Process& target_process, VAddr address); |
| 112 | 112 | ||
| 113 | /** | 113 | /** |
| 114 | * Gets a pointer to the shared memory block | 114 | * Gets a pointer to the shared memory block |
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 75dbfc31d..487e5f0fb 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp | |||
| @@ -796,7 +796,7 @@ static ResultCode MapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 s | |||
| 796 | return ERR_INVALID_MEMORY_RANGE; | 796 | return ERR_INVALID_MEMORY_RANGE; |
| 797 | } | 797 | } |
| 798 | 798 | ||
| 799 | return shared_memory->Map(current_process, addr, permissions_type, MemoryPermission::DontCare); | 799 | return shared_memory->Map(*current_process, addr, permissions_type, MemoryPermission::DontCare); |
| 800 | } | 800 | } |
| 801 | 801 | ||
| 802 | static ResultCode UnmapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 size) { | 802 | static ResultCode UnmapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 size) { |
| @@ -826,7 +826,7 @@ static ResultCode UnmapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 | |||
| 826 | return ERR_INVALID_MEMORY_RANGE; | 826 | return ERR_INVALID_MEMORY_RANGE; |
| 827 | } | 827 | } |
| 828 | 828 | ||
| 829 | return shared_memory->Unmap(current_process, addr); | 829 | return shared_memory->Unmap(*current_process, addr); |
| 830 | } | 830 | } |
| 831 | 831 | ||
| 832 | /// Query process memory | 832 | /// Query process memory |