]> git.ozlabs.org Git - ccan/blobdiff - ccan/crc/crc.h
ccan/crc: remove broken "crc32c" routines which gave wrong results.
[ccan] / ccan / crc / crc.h
index 25789b7712b7d307b394a6a246109b0bd003cc99..ba9f039c2958f8dc8eb358eade94069d340144ea 100644 (file)
@@ -4,65 +4,9 @@
 #include <stdint.h>
 #include <stdlib.h>
 
-/**
- * crc32c - Castagnoli 32 bit crc of string of bytes
- * @start_crc: the initial crc (usually 0)
- * @buf: pointer to bytes
- * @size: length of buffer
- *
- * If you don't know what crc32 to use, use this one: it's the best.
- *
- * @Article{castagnoli-crc,
- * author =       { Guy Castagnoli and Stefan Braeuer and Martin Herrman},
- * title =        {{Optimization of Cyclic Redundancy-Check Codes with 24
- *                 and 32 Parity Bits}},
- * journal =      IEEE Transactions on Communication,
- * year =         {1993},
- * volume =       {41},
- * number =       {6},
- * pages =        {},
- * month =        {June},
- *}
- * 32 bit CRC checksum using polynomial
- * X^32+X^28+X^27+X^26+X^25+X^23+X^22+X^20+X^19+X^18+X^14+X^13+X^11+X^10+X^9+X^8+X^6+X^0.
- *
- * You can calculate the CRC of non-contiguous arrays by passing @start_crc
- * as 0 the first time, and the current crc result from then on.
- *
- * Example:
- *     #include <sys/uio.h>
- *     ...
- *     // Check that iovec has the crc we expect (Castagnoli version)
- *     static bool check_crc(uint32_t expected, const struct iovec *iov, int l)
- *     {
- *             uint32_t crc = 0;
- *             while (l >= 0) {
- *                     crc = crc32c(crc, iov->iov_base, iov->iov_len);
- *                     iov++;
- *             }
- *             return crc == expected;
- *     }
- */
-uint32_t crc32c(uint32_t start_crc, const void *buf, size_t size);
-
-/**
- * crc32c_table - Get the Castagnoli CRC table
- *
- * For special effects, you might want direct access to the table; this is
- * the standard 256-entry table for this algorithm.
- *
- * In theory, this might need to malloc(), and thus return NULL.
- *
- * Example:
- *     // This dumb code only handles Castagnoli, so assert that here.
- *     static void check_user_crc_table(const uint32_t *usertab)
- *     {
- *             const uint32_t *ctab = crc32c_table();
- *             if (!ctab || memcmp(ctab, usertab, 1024) != 0)
- *                     abort();
- *     }
- */
-const uint32_t *crc32c_table(void);
+/* Note: the crc32c function has been *fixed* (it gave wrong results!) and
+ * moved to the ccan/crc32c module.  You probably want that if you're
+ * just after a "good" crc function. */
 
 /**
  * crc32_ieee - IEEE 802.3 32 bit crc of string of bytes