summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/server_session.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2017-12-29 06:36:22 +0100
committerbunnei <bunneidev@gmail.com>2017-12-29 06:36:22 +0100
commitdcdaac8a0b5ae5b8d251c3713d3024287b0720b1 (patch)
tree35cb5631e4d00d1582aa238cf93abdc73b6afa8a /src/core/hle/kernel/server_session.cpp
parentap, aoc_u: Minor cleanup. (diff)
downloadyuzu-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 'src/core/hle/kernel/server_session.cpp')
-rw-r--r--src/core/hle/kernel/server_session.cpp11
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.