summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2021-05-16 06:40:19 +0200
committerMorph <39850852+Morph1984@users.noreply.github.com>2021-05-16 10:10:42 +0200
commit81a5ecdb18f04a508d57dd1fd8a182703d4734b5 (patch)
treef0319179cab798a785c40fd64f24d8eb9ba156f5
parentMerge pull request #6293 from v1993/master (diff)
downloadyuzu-81a5ecdb18f04a508d57dd1fd8a182703d4734b5.tar
yuzu-81a5ecdb18f04a508d57dd1fd8a182703d4734b5.tar.gz
yuzu-81a5ecdb18f04a508d57dd1fd8a182703d4734b5.tar.bz2
yuzu-81a5ecdb18f04a508d57dd1fd8a182703d4734b5.tar.lz
yuzu-81a5ecdb18f04a508d57dd1fd8a182703d4734b5.tar.xz
yuzu-81a5ecdb18f04a508d57dd1fd8a182703d4734b5.tar.zst
yuzu-81a5ecdb18f04a508d57dd1fd8a182703d4734b5.zip
-rw-r--r--src/core/hle/kernel/hle_ipc.cpp2
-rw-r--r--src/core/hle/kernel/hle_ipc.h7
2 files changed, 7 insertions, 2 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp
index ce3466df8..f79b6b47e 100644
--- a/src/core/hle/kernel/hle_ipc.cpp
+++ b/src/core/hle/kernel/hle_ipc.cpp
@@ -64,7 +64,7 @@ void HLERequestContext::ParseCommandBuffer(const KHandleTable& handle_table, u32
if (command_header->enable_handle_descriptor) {
handle_descriptor_header = rp.PopRaw<IPC::HandleDescriptorHeader>();
if (handle_descriptor_header->send_current_pid) {
- rp.Skip(2, false);
+ pid = rp.Pop<u64>();
}
if (incoming) {
// Populate the object lists with the data in the IPC request.
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h
index 4fba300dc..e1b128281 100644
--- a/src/core/hle/kernel/hle_ipc.h
+++ b/src/core/hle/kernel/hle_ipc.h
@@ -150,6 +150,10 @@ public:
return command_header->type;
}
+ u64 GetPID() const {
+ return pid;
+ }
+
u32 GetDataPayloadOffset() const {
return data_payload_offset;
}
@@ -305,11 +309,12 @@ private:
std::vector<IPC::BufferDescriptorABW> buffer_w_desciptors;
std::vector<IPC::BufferDescriptorC> buffer_c_desciptors;
+ u32_le command{};
+ u64 pid{};
u32 data_payload_offset{};
u32 handles_offset{};
u32 domain_offset{};
u32 data_size{};
- u32_le command{};
std::vector<std::shared_ptr<SessionRequestHandler>> domain_request_handlers;
bool is_thread_waiting{};