From 226786f0b05405b4c0287786f106ae2e08feefec Mon Sep 17 00:00:00 2001 From: Subv Date: Sat, 6 Jan 2018 21:14:14 -0500 Subject: IPC: Use the correct size when pushing raw data to the command buffer and fixed pushing domain objects. Domain object ids are always stored immediately after the raw data. --- src/core/hle/ipc.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/core/hle/ipc.h') diff --git a/src/core/hle/ipc.h b/src/core/hle/ipc.h index 4dc8937c3..4c21f5024 100644 --- a/src/core/hle/ipc.h +++ b/src/core/hle/ipc.h @@ -143,7 +143,7 @@ struct DataPayloadHeader { }; static_assert(sizeof(DataPayloadHeader) == 8, "DataPayloadRequest size is incorrect"); -struct DomainMessageHeader { +struct DomainRequestMessageHeader { union { BitField<0, 8, u32_le> command; BitField<16, 16, u32_le> size; @@ -151,7 +151,13 @@ struct DomainMessageHeader { u32_le object_id; INSERT_PADDING_WORDS(2); }; -static_assert(sizeof(DomainMessageHeader) == 16, "DomainMessageHeader size is incorrect"); +static_assert(sizeof(DomainRequestMessageHeader) == 16, "DomainRequestMessageHeader size is incorrect"); + +struct DomainResponseMessageHeader { + u32_le num_objects; + INSERT_PADDING_WORDS(3); +}; +static_assert(sizeof(DomainResponseMessageHeader) == 16, "DomainResponseMessageHeader size is incorrect"); enum DescriptorType : u32 { // Buffer related desciptors types (mask : 0x0F) -- cgit v1.2.3