diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2015-01-31 16:12:54 -0200 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2015-02-02 15:37:04 -0200 |
commit | c4208c1171afe5522f1237480a49aac855313ff8 (patch) | |
tree | 1cdc97dbf232759d42ca90963e5eb7aacfac82f4 /src | |
parent | e8330dd162ac9669befc68c64772543d7884ac7f (diff) |
SVC: Enable CloseHandle, clean up DuplicateHandle
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/svc.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 1a0c07cb9..8bfa1428e 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp @@ -131,9 +131,8 @@ static ResultCode SendSyncRequest(Handle handle) { /// Close a handle static ResultCode CloseHandle(Handle handle) { - // ImplementMe - LOG_ERROR(Kernel_SVC, "(UNIMPLEMENTED) called handle=0x%08X", handle); - return RESULT_SUCCESS; + LOG_TRACE(Kernel_SVC, "Closing handle 0x%08X", handle); + return Kernel::g_handle_table.Close(handle); } /// Wait for a handle to synchronize, timeout after the specified nanoseconds @@ -445,12 +444,9 @@ static ResultCode CreateEvent(Handle* out_handle, u32 reset_type) { /// Duplicates a kernel handle static ResultCode DuplicateHandle(Handle* out, Handle handle) { - ResultVal<Handle> out_h = Kernel::g_handle_table.Duplicate(handle); - if (out_h.Succeeded()) { - *out = *out_h; - LOG_TRACE(Kernel_SVC, "duplicated 0x%08X to 0x%08X", handle, *out); - } - return out_h.Code(); + CASCADE_RESULT(*out, Kernel::g_handle_table.Duplicate(handle)); + LOG_TRACE(Kernel_SVC, "duplicated 0x%08X to 0x%08X", handle, *out); + return RESULT_SUCCESS; } /// Signals an event |