* of the GNU Lesser General Public License.
*/
+#ifndef _SHERLOCK_LIZARD_H
+#define _SHERLOCK_LIZARD_H
+
#define LIZARD_NEEDS_CHARS 8
/* The compression routine needs input buffer 8 characters longer, because it
* does not check the input bounds all the time. */
* The multiplicative constant comes from 19-byte incompressible string
* followed by a 3-sequence that can be compressed into 2-byte link. This
* breaks the copy-mode and it needs to be restarted with a new header. The
- * total length is 2(header) + 2(link) + 19(string) = 23.
+ * total length is 2(header) + 19(string) + 2(link) = 23.
*/
/* lizard.c */
int lizard_decompress(byte *in, byte *out);
/* lizard-safe.c */
-struct sigaction;
-struct lizard_buffer {
- uns len;
- void *start, *ptr;
- struct sigaction *old_sigsegv_handler;
-};
-
-struct lizard_buffer *lizard_alloc(uns max_len);
+struct lizard_buffer;
+
+struct lizard_buffer *lizard_alloc(void);
void lizard_free(struct lizard_buffer *buf);
-int lizard_decompress_safe(byte *in, struct lizard_buffer *buf, uns expected_length);
+byte *lizard_decompress_safe(byte *in, struct lizard_buffer *buf, uns expected_length);
+
+/* adler32.c */
+uns update_adler32(uns adler, byte *ptr, uns len);
+
+static inline uns
+adler32(byte *buf, uns len)
+{
+ return update_adler32(1, buf, len);
+}
+
+#endif