Messages in this thread | | | Date | Tue, 6 Aug 2002 15:52:25 +0300 | From | Muli Ben-Yehuda <> | Subject | Re: weird padding in linux/timex.h, struct timex |
| |
On Tue, Aug 06, 2002 at 02:36:04PM +0100, Alan Cox wrote: > On Tue, 2002-08-06 at 12:15, Muli Ben-Yehuda wrote: > > Hi, > > > > struct timex in include/linux/timex.h is defined as > > > > struct timex > > { > > ... > > int :32; int :32; int :32; int :32; > > int :32; int :32; int :32; int :32; > > int :32; int :32; int :32; int :32; > > }; > > > > I assume that this is used as padding. Is there any reason for using > > bitfields as padding? If there is, a comment to that effect would be > > nice. If there isn't, the following patch makes the padding explicit. > > > > That is how the interface has always been defined. I think we inherited > that from the world of xntpd but I may be wrong. Your __pad is not > always the same thing - you assume 4 byte ints and ints aligned the same > way as char [], which may not always be true.
I assume 4 byte ints, because I assume that the length of a 32 bit bitfield will be 32 bits. As for alignment, you're correct.
I guess my question becomes: is the original code defined in any special way, in regards to padding and size? If it isn't, my __pad patch would be cleaner and just as correct in principle. If it is, I can make a __pad which will behave exactly the same way.
Thanks, Muli. -- I am PINK, hear me ROAR
http://vipe.technion.ac.il/~mulix/ http://syscalltrack.sf.net/ [unhandled content-type:application/pgp-signature] | |