On 30.11.23 02:34, Bart Van Assche wrote: > +/* SBC-5 IO advice hints group descriptor */ > +struct scsi_io_group_descriptor { > +#if defined(__BIG_ENDIAN) > + u8 io_advice_hints_mode: 2; > + u8 reserved1: 3; > + u8 st_enble: 1; > + u8 cs_enble: 1; > + u8 ic_enable: 1; > +#elif defined(__LITTLE_ENDIAN) > + u8 ic_enable: 1; > + u8 cs_enble: 1; > + u8 st_enble: 1; > + u8 reserved1: 3; > + u8 io_advice_hints_mode: 2; > +#else > +#error > +#endif > + u8 reserved2[3]; > + /* Logical block markup descriptor */ > +#if defined(__BIG_ENDIAN) > + u8 acdlu: 1; > + u8 reserved3: 1; > + u8 rlbsr: 2; > + u8 lbm_descriptor_type: 4; > +#elif defined(__LITTLE_ENDIAN) > + u8 lbm_descriptor_type: 4; > + u8 rlbsr: 2; > + u8 reserved3: 1; > + u8 acdlu: 1; > +#else > +#error > +#endif > + u8 params[2]; > + u8 reserved4; > + u8 reserved5[8]; > +}; > + > +static_assert(sizeof(struct scsi_io_group_descriptor) == 16); Hi Bart, Have you considered using GENMASK() and FILED_GET() for this? All the ifdefs make the header rather ugly.