rigth crc32 implementation
Jose M Rodriguez
josemi at freebsd.jazztel.es
Tue Apr 26 13:22:44 PDT 2005
El Martes, 26 de Abril de 2005 21:42, Marcel Moolenaar escribió:
> On Tue, Apr 26, 2005 at 11:43:54AM +0200, Jose M Rodriguez wrote:
> > My first think was use the libkern based one, but I found:
> > sys/linkern/crc32.c
> >
> > - the code may not be endian safe.
>
> It operates on bytes, so it's endian-safe. Note that the uint32_t
> that's returned is not subject to endianness issues: it's always
> in the native byte order. The caller of crc32 needs to byteswap
> if it needs to compare this integral with a CRC that's not in
> the native byte order.
>
Yes, but this code come from a previous reduction: calculate the table
from a xor/shift bit oriented alg.
Looking at sys/net/if_ethersubr.c ether_crc32_be() & ether_crc32_le(), I
became to doubt if we need two tables, with bitesex based #ifs.
--
josemi
More information about the freebsd-current
mailing list