[linux-dvb] [PATCH] Multi protocol support (stage #1)

Johannes Stezenbach js at linuxtv.org
Thu Apr 27 15:59:30 CEST 2006


On Thu, Apr 27, 2006, Manu Abraham wrote:
> Johannes Stezenbach wrote:
> >>+struct dvb_frontend_params {
> >>+       __u32                           frequency;
> >>+       enum fe_delsys                  delivery;
> >>+       enum fe_inversion               inversion;
> >>+
> >>+       union {
> >>+               struct dvbs_params      dvbs;
> >>+               struct dvbs2_params     dvbs2;
> >>+               struct dss_params       dss;
> >>+               struct dvbc_params      dvbc;
> >>+               struct dvbt_params      dvbt;
> >>+               struct dvbh_params      dvbh;
> >>+               struct atsc_params      atsc;
> >>+       } delsys;
> >>    
> >
> >The kernel now requires gcc-3.x, so you could use anonymous unions if
> >you want.
> >But you repeat the same mistake which we already made: No room
> >for future binary compitable extension :-(
> 
> What's your thought on removing the size field in the IOCTL, so that the 
> size won't be an issue ?
> That way it will be binary compatible. :-) Or any other thoughts you 
> have ? We can retain the size for now, but we can remove it as and when 
> need arises ..

- old binaries would have less memory allocated than the
  kernel wants to read -> boom
- dvb_usercopy wouldn't work

It's far better to add "u8 pad[256];" to the union.
(or some other arbitrary number instead of 256)

Johannes



More information about the linux-dvb mailing list