Date: Tue, 29 Aug 2017 10:20:22 -0600 From: Warner Losh <imp@bsdimp.com> To: John Baldwin <jhb@freebsd.org> Cc: Maxim Sobolev <sobomax@freebsd.org>, Ryan Libby <rlibby@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, src-committers <src-committers@freebsd.org> Subject: Re: svn commit: r322969 - in head: sbin/mdconfig sys/dev/md sys/sys Message-ID: <CANCZdfqma5o8paPebnFj83M_y%2BOOf1V8iMNMkzQm8QYh-FkHEQ@mail.gmail.com> In-Reply-To: <6350259.n2rmZ9RnEY@ralph.baldwin.cx> References: <201708281554.v7SFs8fr014268@repo.freebsd.org> <2937323.CvTEtZnL2T@ralph.baldwin.cx> <CAH7qZftFAzfsgfgHV2=59Ah2LPfMC_CFYUEfiFZSWbf7jMZUTg@mail.gmail.com> <6350259.n2rmZ9RnEY@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 29, 2017 at 8:30 AM, John Baldwin <jhb@freebsd.org> wrote: > On Monday, August 28, 2017 04:40:49 PM Maxim Sobolev wrote: > > John, well, this depends on how you look at it. The padding element size > is > > "int", which when you account for the alignment has the nice property on > > both 32 and 64-bit arches that no matter what kind of element you add > > (char, short, int or void *), you only need to bring down MDNPAD by 1 to > > keep the structure size the same. > > That's only true once. Add a second pointer and this trick won't work > again > on 64-bit platforms. It only worked this time by accident because there > was > unaccounted-for padding at the end of the structure, not on purpose. In > other places in the tree where ABI is more carefully maintained we use > explicit spare pointers or spare longs instead (e.g. padding in > kinfo_proc). > Yes, as someone that's lived through the 'All the World's a VAX' wars and the 'All the world's 32-bit' wars or even the more ancient 16-bit -> 32-bit wars, there's a reason we have uintptr_t and why it may not be an int... Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfqma5o8paPebnFj83M_y%2BOOf1V8iMNMkzQm8QYh-FkHEQ>