Hi Andreas, > On Mai 07 2019, Lukasz Majewski wrote: > > > +struct __timespec64 > > +{ > > + __time64_t tv_sec; /* Seconds */ > > +# if BYTE_ORDER == BIG_ENDIAN > > + int tv_pad: 32; /* Padding named for checking/setting > > */ > > + __int32_t tv_nsec; /* Nanoseconds */ > > +# else > > + __int32_t tv_nsec; /* Nanoseconds */ > > + int tv_pad: 32; /* Padding named for checking/setting > > */ +# endif > > No need to use a bitfield, since the padding is not fractional. That bitfield is for following reasons: 1. Have a backup plan in the case if we need to copy and clear the padding anyway before passing this structure to the kernel in the future (as recently we discovered that for example x32 has a kernel bug with clearing it). 2. Kernel syscalls (e.g. clock_settime64) expects on those systems two values - each 8 bytes. To avoid any nasty surprises the explicit padding was added. > > Andreas. > Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de