aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/svc.cpp
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner <yuriks@yuriks.net>2015-01-31 16:12:54 -0200
committerGravatar Yuri Kunde Schlesner <yuriks@yuriks.net>2015-02-02 15:37:04 -0200
commitc4208c1171afe5522f1237480a49aac855313ff8 (patch)
tree1cdc97dbf232759d42ca90963e5eb7aacfac82f4 /src/core/hle/svc.cpp
parente8330dd162ac9669befc68c64772543d7884ac7f (diff)
SVC: Enable CloseHandle, clean up DuplicateHandle
Diffstat (limited to 'src/core/hle/svc.cpp')
-rw-r--r--src/core/hle/svc.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp
index 1a0c07cb..8bfa1428 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