I guess it might be marginally more efficient to call bcmp() (and rely on it being optimized), or do 3 comparisons with unsigned short *
> +#define IS_ETHER_BROADCAST(a) ( \ > + ((unsigned short *)(a))[0] == 0xffff && \ > + ((unsigned short *)(a))[1] == 0xffff && \ > + ((unsigned short *)(a))[2] == 0xffff) Apart from this, have you actually tested bridging on the alpha ? The purpose of the warning was also to say "look, this code might not work on architectures not supporting unaligned accesses, so you might need to hack on the code yourself" cheers luigi > Fix the silly warning: > > Index: bridge.h > =================================================================== > RCS file: /home/ncvs/src/sys/net/bridge.h,v > retrieving revision 1.8 > diff -u -r1.8 bridge.h > --- bridge.h 2001/10/05 05:45:26 1.8 > +++ bridge.h 2001/10/11 18:11:51 > @@ -92,8 +92,17 @@ > *((unsigned int *)(a)) == 0xffffffff && \ > ((unsigned short *)(a))[2] == 0xffff ) > #else > -#warning... must complete these for the alpha etc. > +/* > + * unaligned version > + */ > #define BDG_MATCH(a,b) (!bcmp(a, b, ETHER_ADDR_LEN) ) > +#define IS_ETHER_BROADCAST(a) ( \ > + ((unsigned char *)(a))[0] == 0xff && \ > + ((unsigned char *)(a))[1] == 0xff && \ > + ((unsigned char *)(a))[2] == 0xff && \ > + ((unsigned char *)(a))[3] == 0xff && \ > + ((unsigned char *)(a))[4] == 0xff && \ > + ((unsigned char *)(a))[5] == 0xff) > #endif > /* > * The following constants are not legal ifnet pointers, and are used > > > > To Unsubscribe: send mail to [EMAIL PROTECTED] > with "unsubscribe freebsd-net" in the body of the message > To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-net" in the body of the message