about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--crc32.332
l---------crc32_combine.31
2 files changed, 32 insertions, 1 deletions
diff --git a/crc32.3 b/crc32.3
index 66191fd..84c1d65 100644
--- a/crc32.3
+++ b/crc32.3
@@ -4,7 +4,8 @@
 .
 .Sh NAME
 .Nm crc32 ,
-.Nm crc32_z
+.Nm crc32_z ,
+.Nm crc32_combine
 .Nd update CRC-32 checksum
 .
 .Sh LIBRARY
@@ -16,6 +17,8 @@
 .Fn crc32 "uLong crc" "const Bytef *buf" "uInt len"
 .Ft uLong
 .Fn crc32_z "uLong crc" "const Bytef *buf" "z_size_t len"
+.Ft uLong
+.Fn crc32_combine "uLong crc1" "uLong crc2" "z_off_t len2"
 .
 .Sh DESCRIPTION
 Update a running CRC-32 with the bytes
@@ -41,6 +44,33 @@ but with a
 .Vt size_t
 length.
 .
+.Pp
+.Fn crc32_combine
+combines two CRC-32 check values into one.
+For two sequences of bytes,
+.Va seq1
+and
+.Va seq2
+with lengths
+.Va len1
+and
+.Va len2 ,
+CRC-32 check values were calculated for each,
+.Va crc1
+and
+.Va crc2 .
+.Fn crc32_combine
+returns the CRC-32 check value of
+.Va seq1
+and
+.Va seq2
+concatenated,
+requiring only
+.Fa crc1 ,
+.Fa crc2 ,
+and
+.Fa len2 .
+.
 .Sh EXAMPLES
 .Bd -literal -offset indent
 uLong crc = crc32(0L, Z_NULL, 0);
diff --git a/crc32_combine.3 b/crc32_combine.3
new file mode 120000
index 0000000..cd5bed9
--- /dev/null
+++ b/crc32_combine.3
@@ -0,0 +1 @@
+crc32.3
\ No newline at end of file