Different zlib CRC Algorithms

Wolfgang Denk wd at denx.de
Tue Feb 4 12:17:55 EST 2003

In message <200302041644.40551.phil at river-bank.demon.co.uk> you wrote:
> Why does ppcboot/uboot have two versions of crc32()? What's the difference 
> between them?

Quote from U-Boot's "lib_generic/crc32.c":

uLong ZEXPORT crc32(crc, buf, len)
    crc = crc ^ 0xffffffffL;
    return crc ^ 0xffffffffL;
/* No ones complement version. JFFS2 (and other things ?)
 * don't use ones compliment in their CRC calculations.
uLong ZEXPORT crc32_no_comp(uLong crc, const Bytef *buf, uInt len)
    return crc;

The difference is the "^ 0xffffffffL" part;  if  this  justifies  the
existence  of  another  function  is  another  question  (it would be
trivial to hide this is a macro or such).

Best regards,

Wolfgang Denk

Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
To program is to be.

More information about the linux-mtd mailing list