On Tuesday, November 03, 2015 at 08:28:43 PM, Oliver Hartkopp wrote: > On 11/03/2015 08:19 PM, Marek Vasut wrote: > > On Tuesday, November 03, 2015 at 07:03:26 PM, Oliver Hartkopp wrote: > >> 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 :-) > > > > Oh yeah. P is parity and it's optional as well and can be odd/even > > depending on the remote endpoint (sigh). > > > >> Btw. it can make sense to introduce an union struct where different > >> options to access the content are possible. > > > > This would be pretty nasty I think. By reading the ARINC specification, > > the SSM can be either 2 or 3 bits, the SDI is who-knows-what depending > > on the remote endpoint and the P is also not always present. I'm not > > convinced that the kernel should interpret the 3 byte ARINC payload in > > any way. (but I wonder if my argument presented above is convincing at > > all either ...). > > Right. > > When we define a user visible data structure, this is written into stone. > > When ARINC isn't even sure about the detailed interpretation we should > definitely keep our fingers away from doing it ourselves.
Right. Besides, such extension to the ABI can be done later if the need arises (which I seriously doubt), can't it ? Handling the payload as a CAN payload makes sense. Best regards, Marek Vasut -- 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