On Mon, Mar 05, 2018 at 05:58:15PM +0100, Christophe de Dinechin wrote:
> > Perhaps you lost the mails saying that the protocol structure don't and 
> > won't have internal padding.
> 
> Only on x86. It has padding on any ABI with a natural 64-bit alignment.
> 
> I don’t have an Itanium handy, but computing the offsetof(msg.msg) and
> offsetof(msg.StreamNotifyError::msg) on a Raspberry Pi using
> -mstructure-size-boundary=64 yields:
> 
> offsetof msg.msg=8
> offsetof msg.StreamNotifyError::msg=4

For what it's worth, at the moment stream-device.h expects that its
struct members are going to be "naturally aligned", ie that struct
members are aligned to a multiple of their size in byte within the
struct. This seems to be the case with the ABIs/arch we are interested
in. If there is a real-world ABI which does not match this, then we'll
indeed need to adapt stream-device.h assumptions.
The rest of spice-protocol is using __attribute__("packed"). The
disadvantage with that is that you have to do some manual handling of
unaligned accesses on some arches (older 32 bits ARM come to mind).

Christophe

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to