diff options
author | bunnei <bunneidev@gmail.com> | 2017-12-29 06:36:22 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2017-12-29 06:36:22 +0100 |
commit | dcdaac8a0b5ae5b8d251c3713d3024287b0720b1 (patch) | |
tree | 35cb5631e4d00d1582aa238cf93abdc73b6afa8a /src/core/hle/kernel/server_session.cpp | |
parent | ap, aoc_u: Minor cleanup. (diff) | |
download | yuzu-dcdaac8a0b5ae5b8d251c3713d3024287b0720b1.tar yuzu-dcdaac8a0b5ae5b8d251c3713d3024287b0720b1.tar.gz yuzu-dcdaac8a0b5ae5b8d251c3713d3024287b0720b1.tar.bz2 yuzu-dcdaac8a0b5ae5b8d251c3713d3024287b0720b1.tar.lz yuzu-dcdaac8a0b5ae5b8d251c3713d3024287b0720b1.tar.xz yuzu-dcdaac8a0b5ae5b8d251c3713d3024287b0720b1.tar.zst yuzu-dcdaac8a0b5ae5b8d251c3713d3024287b0720b1.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/kernel/server_session.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp index 68e5cc2b7..09d02a691 100644 --- a/src/core/hle/kernel/server_session.cpp +++ b/src/core/hle/kernel/server_session.cpp @@ -6,7 +6,9 @@ #include "core/hle/kernel/client_port.h" #include "core/hle/kernel/client_session.h" +#include "core/hle/kernel/handle_table.h" #include "core/hle/kernel/hle_ipc.h" +#include "core/hle/kernel/process.h" #include "core/hle/kernel/server_session.h" #include "core/hle/kernel/session.h" #include "core/hle/kernel/thread.h" @@ -66,8 +68,13 @@ ResultCode ServerSession::HandleSyncRequest(SharedPtr<Thread> thread) { ResultCode translate_result = TranslateHLERequest(this); if (translate_result.IsError()) return translate_result; - result = hle_handler->HandleSyncRequest(SharedPtr<ServerSession>(this)); - // TODO(Subv): Translate the response command buffer. + + Kernel::HLERequestContext context(this); + u32* cmd_buf = (u32*)Memory::GetPointer(Kernel::GetCurrentThread()->GetTLSAddress()); + context.PopulateFromIncomingCommandBuffer(cmd_buf, *Kernel::g_current_process, + Kernel::g_handle_table); + + result = hle_handler->HandleSyncRequest(context); } else { // Add the thread to the list of threads that have issued a sync request with this // server. |