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

Reply via email to