diff options
author | bunnei <bunneidev@gmail.com> | 2018-01-17 07:16:55 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-01-17 07:20:10 +0100 |
commit | 30cb98f874d0df9e818976f2140135ac8fe1501b (patch) | |
tree | 53bba56a04da35b8c262038db928bc0158458389 /src/core/hle/kernel/domain.cpp | |
parent | loggin: Add IPC logging category. (diff) | |
download | yuzu-30cb98f874d0df9e818976f2140135ac8fe1501b.tar yuzu-30cb98f874d0df9e818976f2140135ac8fe1501b.tar.gz yuzu-30cb98f874d0df9e818976f2140135ac8fe1501b.tar.bz2 yuzu-30cb98f874d0df9e818976f2140135ac8fe1501b.tar.lz yuzu-30cb98f874d0df9e818976f2140135ac8fe1501b.tar.xz yuzu-30cb98f874d0df9e818976f2140135ac8fe1501b.tar.zst yuzu-30cb98f874d0df9e818976f2140135ac8fe1501b.zip |
Diffstat (limited to 'src/core/hle/kernel/domain.cpp')
-rw-r--r-- | src/core/hle/kernel/domain.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/core/hle/kernel/domain.cpp b/src/core/hle/kernel/domain.cpp index 7ebb4b9c7..5035e9c08 100644 --- a/src/core/hle/kernel/domain.cpp +++ b/src/core/hle/kernel/domain.cpp @@ -2,6 +2,8 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include "common/logging/log.h" +#include "core/hle/ipc_helpers.h" #include "core/hle/kernel/client_port.h" #include "core/hle/kernel/domain.h" #include "core/hle/kernel/handle_table.h" @@ -36,7 +38,24 @@ ResultCode Domain::SendSyncRequest(SharedPtr<Thread> thread) { if (domain_message_header) { // If there is a DomainMessageHeader, then this is CommandType "Request" const u32 object_id{context.GetDomainMessageHeader()->object_id}; - return request_handlers[object_id - 1]->HandleSyncRequest(context); + switch (domain_message_header->command) { + case IPC::DomainMessageHeader::CommandType::SendMessage: + return request_handlers[object_id - 1]->HandleSyncRequest(context); + + case IPC::DomainMessageHeader::CommandType::CloseVirtualHandle: { + LOG_DEBUG(IPC, "CloseVirtualHandle, object_id=0x%08X", object_id); + + request_handlers[object_id - 1] = nullptr; + + IPC::RequestBuilder rb{context, 2}; + rb.Push(RESULT_SUCCESS); + + return RESULT_SUCCESS; + } + } + + LOG_CRITICAL(IPC, "Unknown domain command=%d", domain_message_header->command.Value()); + UNIMPLEMENTED(); } return request_handlers.front()->HandleSyncRequest(context); } |