changeset 8267:3d2736ece94a HEAD

Added crc32_[str_]more().
author Timo Sirainen <tss@iki.fi>
date Sun, 12 Oct 2008 14:40:08 +0300
parents 47edfe6ad295
children eb320fbb87f0
files src/lib/crc32.c src/lib/crc32.h
diffstat 2 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/crc32.c	Sun Oct 12 14:17:51 2008 +0300
+++ b/src/lib/crc32.c	Sun Oct 12 14:40:08 2008 +0300
@@ -60,8 +60,12 @@
 
 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)];
@@ -70,8 +74,12 @@
 
 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)];
--- a/src/lib/crc32.h	Sun Oct 12 14:17:51 2008 +0300
+++ b/src/lib/crc32.h	Sun Oct 12 14:40:08 2008 +0300
@@ -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