Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Nov 2006 05:47:40 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        src-committers@freebsd.org, yar@comp.chem.msu.su, cvs-all@freebsd.org, phk@phk.freebsd.dk, cvs-src@freebsd.org, jkoshy@freebsd.org
Subject:   Re: cvs commit: src/include ar.h
Message-ID:  <20061119052526.S16985@delplex.bde.org>
In-Reply-To: <20061118.110343.58444366.imp@bsdimp.com>
References:  <20061117201432.X11101@delplex.bde.org> <20061117.105304.1769993002.imp@bsdimp.com> <20061118214618.U15111@delplex.bde.org> <20061118.110343.58444366.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 18 Nov 2006, M. Warner Losh wrote:

> In message: <20061118214618.U15111@delplex.bde.org>
>            Bruce Evans <bde@zeta.org.au> writes:
> : On Fri, 17 Nov 2006, M. Warner Losh wrote:
> :
> : > In message: <20061117201432.X11101@delplex.bde.org>
> : >            Bruce Evans <bde@zeta.org.au> writes:
> : > : For that the comment should be something like:
> : > :
> : > :  	__packed;	/* Align (sic) to work around bugs on arm (*). */
> : > :
> : > : but I doubt that arm is that broken.
> : > :
> : > : (*) See this thread for more details.
> : >
> : > But they aren't bugs.
> :
> : Er, this thread gived the details of why they are bugs.
>
> Wait, is this the ar or the struct ip thing..  Ar is clearly needed,
> but I was going to test the packedness on struct ip...  I've just had
> my first son and am operating on too little sleep :-(.

I was mostly talking about struct ip.  Something is needed for struct
ar_hdr, since although it has size a multiple of 4 applications expect
it to have alignment 1 but arm gives it alignment 4.  Something is needed
for struct ether_header (which sam recently packed), since it wants to
have size 14 and alignment 2, but arm gives it size 16 and alignment 4.
Nothing shoulded be need for struct ip, since it wants to have size 20 and
alignment 4, and arm gives it that.

struct ether header now has alignment 1.  I don't like that...

Immediately after struct ether_header in <net/ethernet.h>, there is
struct ether_addr.  This wants to have size 6 and alignment 1 (it wants
to be just 6 octets), but is still unpacked so it has size 8 and
alignment 4 on arm.  It's surprising that anything in ethernet works
on arm.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061119052526.S16985>