]> mj.ucw.cz Git - libucw.git/blobdiff - lib/lizard.h
Mainline is now v3.3.
[libucw.git] / lib / lizard.h
index 1929cffb0b0fe2b928f732b696586b68abf902c9..fc3631ac1103f829263fced390c8281a3cffba8b 100644 (file)
@@ -1,17 +1,17 @@
 /*
- *     LiZzaRd -- Fast compression method based on Lempel-Ziv 77
+ *     LiZaRd -- Fast compression method based on Lempel-Ziv 77
  *
  *     (c) 2004, Robert Spalek <robert@ucw.cz>
  *
- *     The file format is based on LZO1X and 
- *     the compression method is based on zlib.
+ *     This software may be freely distributed and used according to the terms
+ *     of the GNU Lesser General Public License.
  */
 
-#define        LIZZARD_NEEDS_CHARS     8
+#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.  */
-#define        LIZZARD_MAX_MULTIPLY    23./22
-#define        LIZZARD_MAX_ADD         4
+#define        LIZARD_MAX_MULTIPLY     23./22
+#define        LIZARD_MAX_ADD          4
   /* In the worst case, the compressed file will not be longer than its
    * original length * 23/22 + 4.
    *
    * total length is 2(header) + 2(link) + 19(string) = 23.
    */
 
-int lizzard_compress(byte *in, uns in_len, byte *out);
-int lizzard_decompress(byte *in, byte *out);
+/* lizard.c */
+int lizard_compress(byte *in, uns in_len, byte *out);
+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);
+void lizard_free(struct lizard_buffer *buf);
+int lizard_decompress_safe(byte *in, struct lizard_buffer *buf, uns expected_length);