On 11/03/2015 06:41 PM, Marek Vasut wrote: > On Tuesday, November 03, 2015 at 06:32:12 PM, Oliver Hartkopp wrote: > > [...] > >> It looks like you need to shift the stuff in user space every time. >> >> So you might better think of something like this: >> >> struct a429_frame { >> __u32 label; /* ARINC 429 label */ >> __u8 length; /* always set to 8 */ >> __u8 __pad; /* padding */ >> __u8 __res0; /* reserved / padding */ >> __u8 __res1; /* reserved / padding */ >> __u32 data __attribute__((aligned(8))); >> __u8 p; /* p */ >> __u8 ssm; /* ssm */ >> __u8 sdi; /* sdi */ >> __u8 __end; /* padding */ >> }; > > You don't want to interpret those P(arity)/SSM/SDI bits, since they differ > depending on whatever the remote party sends. That's why I decided to just > make those into 3-bytes of data and let the userland application deal with > it as seen fit. Besides, the ARINC "FTP" really uses those 3 bytes as plain > data.
Ok. I did not know what P was for :-) Btw. it can make sense to introduce an union struct where different options to access the content are possible. E.g. you might have a 32 bit word, some bit-wise specification and a four byte tuple to access the three bytes for ARINC FTP ... Regards, Oliver -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html