summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/svc.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2021-04-03 23:22:07 -0700
committerGravatar bunnei2021-05-05 16:40:50 -0700
commit086db71e942dc3468bccb741cabf62fdd221e790 (patch)
tree46dda7ba6a9d2a1590b09ddddb450595879b2896 /src/core/hle/kernel/svc.cpp
parenthle: kernel: Migrate KProcess to KAutoObject. (diff)
downloadyuzu-086db71e942dc3468bccb741cabf62fdd221e790.tar.gz
yuzu-086db71e942dc3468bccb741cabf62fdd221e790.tar.xz
yuzu-086db71e942dc3468bccb741cabf62fdd221e790.zip
hle: kernel: Migrate KSharedMemory to KAutoObject.
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
-rw-r--r--src/core/hle/kernel/svc.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 7d676e5f7..17d63658a 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -328,7 +328,7 @@ static ResultCode ConnectToNamedPort(Core::System& system, Handle* out_handle,
328 328
329 // Return the client session 329 // Return the client session
330 auto& handle_table = kernel.CurrentProcess()->GetHandleTable(); 330 auto& handle_table = kernel.CurrentProcess()->GetHandleTable();
331 CASCADE_RESULT(*out_handle, handle_table.Create(client_session)); 331 CASCADE_RESULT(*out_handle, handle_table.Create(client_session.get()));
332 return RESULT_SUCCESS; 332 return RESULT_SUCCESS;
333} 333}
334 334
@@ -836,7 +836,7 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, u64 ha
836 return RESULT_SUCCESS; 836 return RESULT_SUCCESS;
837 } 837 }
838 838
839 const auto table_result = handle_table.Create(resource_limit); 839 const auto table_result = handle_table.Create(resource_limit.get());
840 if (table_result.Failed()) { 840 if (table_result.Failed()) {
841 return table_result.Code(); 841 return table_result.Code();
842 } 842 }
@@ -1168,12 +1168,9 @@ static ResultCode MapSharedMemory(Core::System& system, Handle shared_memory_han
1168 return ResultInvalidMemoryRange; 1168 return ResultInvalidMemoryRange;
1169 } 1169 }
1170 1170
1171 auto shared_memory{current_process->GetHandleTable().Get<KSharedMemory>(shared_memory_handle)}; 1171 auto shared_memory{
1172 if (!shared_memory) { 1172 current_process->GetHandleTable().GetObject<KSharedMemory>(shared_memory_handle)};
1173 LOG_ERROR(Kernel_SVC, "Shared memory does not exist, shared_memory_handle=0x{:08X}", 1173 R_UNLESS(shared_memory.IsNotNull(), ResultInvalidHandle);
1174 shared_memory_handle);
1175 return ResultInvalidHandle;
1176 }
1177 1174
1178 return shared_memory->Map(*current_process, addr, size, 1175 return shared_memory->Map(*current_process, addr, size,
1179 static_cast<KMemoryPermission>(permission_type)); 1176 static_cast<KMemoryPermission>(permission_type));
@@ -1817,7 +1814,7 @@ static ResultCode CreateTransferMemory(Core::System& system, Handle* handle, VAd
1817 } 1814 }
1818 1815
1819 auto& handle_table = kernel.CurrentProcess()->GetHandleTable(); 1816 auto& handle_table = kernel.CurrentProcess()->GetHandleTable();
1820 const auto result{handle_table.Create(std::move(transfer_mem_handle))}; 1817 const auto result{handle_table.Create(transfer_mem_handle.get())};
1821 if (result.Failed()) { 1818 if (result.Failed()) {
1822 return result.Code(); 1819 return result.Code();
1823 } 1820 }
@@ -1966,7 +1963,7 @@ static ResultCode CreateEvent(Core::System& system, Handle* out_write, Handle* o
1966 event->Initialize(); 1963 event->Initialize();
1967 1964
1968 // Add the writable event to the handle table. 1965 // Add the writable event to the handle table.
1969 const auto write_create_result = handle_table.Create(event->GetWritableEvent()); 1966 const auto write_create_result = handle_table.Create(event->GetWritableEvent().get());
1970 if (write_create_result.Failed()) { 1967 if (write_create_result.Failed()) {
1971 return write_create_result.Code(); 1968 return write_create_result.Code();
1972 } 1969 }
@@ -1976,7 +1973,7 @@ static ResultCode CreateEvent(Core::System& system, Handle* out_write, Handle* o
1976 auto handle_guard = SCOPE_GUARD({ handle_table.Remove(*write_create_result); }); 1973 auto handle_guard = SCOPE_GUARD({ handle_table.Remove(*write_create_result); });
1977 1974
1978 // Add the readable event to the handle table. 1975 // Add the readable event to the handle table.
1979 const auto read_create_result = handle_table.Create(SharedFrom(event->GetReadableEvent())); 1976 const auto read_create_result = handle_table.Create(event->GetReadableEvent());
1980 if (read_create_result.Failed()) { 1977 if (read_create_result.Failed()) {
1981 return read_create_result.Code(); 1978 return read_create_result.Code();
1982 } 1979 }
@@ -2027,7 +2024,7 @@ static ResultCode CreateResourceLimit(Core::System& system, Handle* out_handle)
2027 auto* const current_process = kernel.CurrentProcess(); 2024 auto* const current_process = kernel.CurrentProcess();
2028 ASSERT(current_process != nullptr); 2025 ASSERT(current_process != nullptr);
2029 2026
2030 const auto handle = current_process->GetHandleTable().Create(std::move(resource_limit)); 2027 const auto handle = current_process->GetHandleTable().Create(resource_limit.get());
2031 if (handle.Failed()) { 2028 if (handle.Failed()) {
2032 return handle.Code(); 2029 return handle.Code();
2033 } 2030 }