yuzu-emu
/
yuzu-android
Archived
1
0
Fork 0

hle: kernel: Further cleanup and add TIPC helpers.

This commit is contained in:
bunnei 2021-05-08 02:50:47 -07:00
parent d08bd3e062
commit ed25191ee6
2 changed files with 12 additions and 4 deletions

View File

@ -99,7 +99,7 @@ void HLERequestContext::ParseCommandBuffer(const KHandleTable& handle_table, u32
buffer_w_desciptors.push_back(rp.PopRaw<IPC::BufferDescriptorABW>()); buffer_w_desciptors.push_back(rp.PopRaw<IPC::BufferDescriptorABW>());
} }
buffer_c_offset = rp.GetCurrentOffset() + command_header->data_size; const auto buffer_c_offset = rp.GetCurrentOffset() + command_header->data_size;
// Padding to align to 16 bytes // Padding to align to 16 bytes
rp.AlignWithPadding(); rp.AlignWithPadding();

View File

@ -128,10 +128,19 @@ public:
/// Writes data from this context back to the requesting process/thread. /// Writes data from this context back to the requesting process/thread.
ResultCode WriteToOutgoingCommandBuffer(KThread& requesting_thread); ResultCode WriteToOutgoingCommandBuffer(KThread& requesting_thread);
u32_le GetCommand() const { u32_le GetHipcCommand() const {
return command; return command;
} }
u32_le GetTipcCommand() const {
return static_cast<u32_le>(command_header->type.Value()) -
static_cast<u32_le>(IPC::CommandType::TIPC_CommandRegion);
}
u32_le GetCommand() const {
return command_header->IsTipc() ? GetTipcCommand() : GetHipcCommand();
}
bool IsTipc() const { bool IsTipc() const {
return command_header->IsTipc(); return command_header->IsTipc();
} }
@ -140,7 +149,7 @@ public:
return command_header->type; return command_header->type;
} }
unsigned GetDataPayloadOffset() const { u32 GetDataPayloadOffset() const {
return data_payload_offset; return data_payload_offset;
} }
@ -296,7 +305,6 @@ private:
std::vector<IPC::BufferDescriptorC> buffer_c_desciptors; std::vector<IPC::BufferDescriptorC> buffer_c_desciptors;
u32 data_payload_offset{}; u32 data_payload_offset{};
u32 buffer_c_offset{};
u32 handles_offset{}; u32 handles_offset{};
u32 domain_offset{}; u32 domain_offset{};
u32_le command{}; u32_le command{};