SVC: Enable CloseHandle, clean up DuplicateHandle

This commit is contained in:
Yuri Kunde Schlesner 2015-01-31 16:12:54 -02:00
parent e8330dd162
commit c4208c1171

View File

@ -131,9 +131,8 @@ static ResultCode SendSyncRequest(Handle handle) {
/// Close a handle /// Close a handle
static ResultCode CloseHandle(Handle handle) { static ResultCode CloseHandle(Handle handle) {
// ImplementMe LOG_TRACE(Kernel_SVC, "Closing handle 0x%08X", handle);
LOG_ERROR(Kernel_SVC, "(UNIMPLEMENTED) called handle=0x%08X", handle); return Kernel::g_handle_table.Close(handle);
return RESULT_SUCCESS;
} }
/// Wait for a handle to synchronize, timeout after the specified nanoseconds /// 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 /// Duplicates a kernel handle
static ResultCode DuplicateHandle(Handle* out, Handle handle) { static ResultCode DuplicateHandle(Handle* out, Handle handle) {
ResultVal<Handle> out_h = Kernel::g_handle_table.Duplicate(handle); CASCADE_RESULT(*out, 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); LOG_TRACE(Kernel_SVC, "duplicated 0x%08X to 0x%08X", handle, *out);
} return RESULT_SUCCESS;
return out_h.Code();
} }
/// Signals an event /// Signals an event