X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Flizard.h;h=c701e6f2bcb589d2ecfa4fdaab86f1ebd988f976;hb=bcfb15368033a922fa375d78fb84269e1f9ab11a;hp=d0f8ba09c5c517bc15d60872af7d552699460d3f;hpb=8d1675c114badee10e38db873cc71d08d8f0a492;p=libucw.git diff --git a/lib/lizard.h b/lib/lizard.h index d0f8ba09..c701e6f2 100644 --- a/lib/lizard.h +++ b/lib/lizard.h @@ -3,10 +3,13 @@ * * (c) 2004, Robert Spalek * - * 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. */ +#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. */ @@ -20,17 +23,22 @@ * 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_compress(byte *in, uns in_len, byte *out); int lizard_decompress(byte *in, byte *out); -struct lizard_buffer { - uns len; - void *ptr; -}; +/* lizard-safe.c */ +struct lizard_buffer; -struct lizard_buffer *lizard_alloc(uns max_len); +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); +uns adler32(byte *ptr, uns len); + +#endif