On Tue, Jul 01, 2014 at 01:56:04PM +0200, Markus Teich wrote:
> struct msg_signed_data {
>       unsigned int op;
>       struct foo data;
>       struct bar signature;
> };

If this is data that goes across the network then instead of
directly mapping a struct on that data I'd simply have functions that
create a struct out of that data.

The format of the data on the wire would be specified somewhere.

So the data would arrive as a series of bytes and whenever my packet
parsing function would indicate that a valid packet has been seen, it would
extract data from that ring buffer and map it onto a struct.  The particular
layout of that struct could be different across different architectures/ABIs
in order to meet alignment requirements etc.

Parsing valid packets for further processing could be done with
a table of function pointers indexed by the packet type.

You'd expect to access the struct via functions in the above case.

This is not specific to data across a network, that's just used as an
example.

Reply via email to