]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Added crc32_[str_]more().
authorTimo Sirainen <tss@iki.fi>
Sun, 12 Oct 2008 11:40:08 +0000 (14:40 +0300)
committerTimo Sirainen <tss@iki.fi>
Sun, 12 Oct 2008 11:40:08 +0000 (14:40 +0300)
--HG--
branch : HEAD

src/lib/crc32.c
src/lib/crc32.h

index 4a8cdbe1439dca964ec1c15fdbfe567d24ec7ce3..29a5bb02ca6ab271abf6960f2e63d4367377bae2 100644 (file)
@@ -59,9 +59,13 @@ static uint32_t crc32tab[256] = {
 };
 
 uint32_t crc32_data(const void *data, size_t size)
+{
+       return crc32_data_more((uint32_t)-1, data, size);
+}
+
+uint32_t crc32_data_more(uint32_t crc, const void *data, size_t size)
 {
        const uint8_t *p = data, *end = p + size;
-       uint32_t crc = (uint32_t)-1;
 
        for (; p != end; p++)
                crc = (crc >> 8) ^ crc32tab[((crc ^ *p) & 0xff)];
@@ -69,9 +73,13 @@ uint32_t crc32_data(const void *data, size_t size)
 }
 
 uint32_t crc32_str(const char *str)
+{
+       return crc32_str_more((uint32_t)-1, str);
+}
+
+uint32_t crc32_str_more(uint32_t crc, const char *str)
 {
        const uint8_t *p = (const uint8_t *)str;
-       uint32_t crc = (uint32_t)-1;
 
        for (; *p != '\0'; p++)
                crc = (crc >> 8) ^ crc32tab[((crc ^ *p) & 0xff)];
index 5bcfe01c62b319a742ad30fcb0fc14a11c804755..7892212b03d3b1d59afc09c8d004a932872cf039 100644 (file)
@@ -4,4 +4,7 @@
 uint32_t crc32_data(const void *data, size_t size) ATTR_PURE;
 uint32_t crc32_str(const char *str) ATTR_PURE;
 
+uint32_t crc32_data_more(uint32_t crc, const void *data, size_t size) ATTR_PURE;
+uint32_t crc32_str_more(uint32_t crc, const char *str) ATTR_PURE;
+
 #endif