Blame doc/LZOAPI.TXT

Packit Service 5195f2
Packit Service 5195f2
============================================================================
Packit Service 5195f2
LZO -- a real-time data compression library                LIBRARY REFERENCE
Packit Service 5195f2
============================================================================
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
[ please read LZO.FAQ first ]
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Table of Contents
Packit Service 5195f2
=================
Packit Service 5195f2
Packit Service 5195f2
1      Introduction to the LZO Library Reference
Packit Service 5195f2
1.1      Preliminary notes
Packit Service 5195f2
1.2      Headers
Packit Service 5195f2
2      General
Packit Service 5195f2
2.1      The memory model
Packit Service 5195f2
2.2      Public integral types
Packit Service 5195f2
2.3      Public pointer types
Packit Service 5195f2
2.4      Public function types
Packit Service 5195f2
3      Function reference
Packit Service 5195f2
3.1      Initialization
Packit Service 5195f2
3.2      Compression
Packit Service 5195f2
3.3      Decompression
Packit Service 5195f2
3.4      Optimization
Packit Service 5195f2
3.5      String functions
Packit Service 5195f2
3.6      Checksum functions
Packit Service 5195f2
3.7      Version functions
Packit Service 5195f2
4      Variable reference
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
1 Introduction to the LZO Library Reference
Packit Service 5195f2
=============================================
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
1.1 Preliminary notes
Packit Service 5195f2
---------------------
Packit Service 5195f2
Packit Service 5195f2
- 'C90' is short for ISO 9899-1990, the ANSI/ISO standard for the C
Packit Service 5195f2
  programming language
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
1.2 Headers
Packit Service 5195f2
-----------
Packit Service 5195f2
Packit Service 5195f2
This section briefly describes the headers.
Packit Service 5195f2
Packit Service 5195f2
<lzo/lzoconf.h>
Packit Service 5195f2
Packit Service 5195f2
    Contains definitions for the basic integral and pointer types,
Packit Service 5195f2
    provides wrappers for the library calling conventions, defines
Packit Service 5195f2
    error codes and contains prototypes for the generic functions.
Packit Service 5195f2
    This file is automatically included by all LZO headers.
Packit Service 5195f2
Packit Service 5195f2
<lzo/lzo1.h>
Packit Service 5195f2
<lzo/lzo1a.h>
Packit Service 5195f2
<lzo/lzo1b.h>
Packit Service 5195f2
<lzo/lzo1c.h>
Packit Service 5195f2
<lzo/lzo1f.h>
Packit Service 5195f2
<lzo/lzo1x.h>
Packit Service 5195f2
<lzo/lzo1y.h>
Packit Service 5195f2
<lzo/lzo1z.h>
Packit Service 5195f2
<lzo/lzo2a.h>
Packit Service 5195f2
Packit Service 5195f2
    These files provide definitions and prototypes for the
Packit Service 5195f2
    actual (de-)compression functions.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
2 General
Packit Service 5195f2
=========
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
2.1 The memory model
Packit Service 5195f2
--------------------
Packit Service 5195f2
Packit Service 5195f2
LZO requires a flat 32-bit or 64-bit memory model.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
2.2 Public integral types
Packit Service 5195f2
-------------------------
Packit Service 5195f2
Packit Service 5195f2
lzo_uint
Packit Service 5195f2
Packit Service 5195f2
    must match size_t
Packit Service 5195f2
Packit Service 5195f2
lzo_bool
Packit Service 5195f2
Packit Service 5195f2
    can store the values 0 ("false") and 1 ("true")
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
2.3 Public pointer types
Packit Service 5195f2
------------------------
Packit Service 5195f2
Packit Service 5195f2
lzo_voidp
Packit Service 5195f2
Packit Service 5195f2
    pointer to void
Packit Service 5195f2
Packit Service 5195f2
lzo_bytep
Packit Service 5195f2
Packit Service 5195f2
    pointer to unsigned char
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
2.4 Public function types
Packit Service 5195f2
-------------------------
Packit Service 5195f2
Packit Service 5195f2
lzo_compress_t
Packit Service 5195f2
Packit Service 5195f2
lzo_decompress_t
Packit Service 5195f2
Packit Service 5195f2
lzo_optimize_t
Packit Service 5195f2
Packit Service 5195f2
lzo_callback_t
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
3 Function reference
Packit Service 5195f2
====================
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
3.1 Initialization
Packit Service 5195f2
------------------
Packit Service 5195f2
Packit Service 5195f2
int lzo_init ( void );
Packit Service 5195f2
Packit Service 5195f2
  This function initializes the LZO library. It must be the first LZO
Packit Service 5195f2
  function you call, and you cannot use any of the other LZO library
Packit Service 5195f2
  functions if the call fails.
Packit Service 5195f2
Packit Service 5195f2
  Return value:
Packit Service 5195f2
    Returns LZO_E_OK on success, error code otherwise.
Packit Service 5195f2
Packit Service 5195f2
  Note:
Packit Service 5195f2
    This function is actually implemented using a macro.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
3.2 Compression
Packit Service 5195f2
---------------
Packit Service 5195f2
Packit Service 5195f2
All compressors compress the memory block at 'src' with the uncompressed
Packit Service 5195f2
length 'src_len' to the address given by 'dst'.
Packit Service 5195f2
The length of the compressed blocked will be returned in the variable
Packit Service 5195f2
pointed by 'dst_len'.
Packit Service 5195f2
Packit Service 5195f2
The two blocks may overlap under certain conditions (see examples/overlap.c),
Packit Service 5195f2
thereby allowing "in-place" compression.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packit Service 5195f2
#include <lzo/lzo1x.h>
Packit Service 5195f2
Packit Service 5195f2
int lzo1x_1_compress ( const lzo_bytep src, lzo_uint  src_len,
Packit Service 5195f2
                             lzo_bytep dst, lzo_uintp dst_len,
Packit Service 5195f2
                             lzo_voidp wrkmem );
Packit Service 5195f2
Packit Service 5195f2
  Algorithm:            LZO1X
Packit Service 5195f2
  Compression level:    LZO1X-1
Packit Service 5195f2
  Memory requirements:  LZO1X_1_MEM_COMPRESS    (64 KiB on 32-bit machines)
Packit Service 5195f2
Packit Service 5195f2
  This compressor is pretty fast.
Packit Service 5195f2
Packit Service 5195f2
  Return value:
Packit Service 5195f2
    Always returns LZO_E_OK (this function can never fail).
Packit Service 5195f2
Packit Service 5195f2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packit Service 5195f2
#include <lzo/lzo1x.h>
Packit Service 5195f2
Packit Service 5195f2
int lzo1x_999_compress ( const lzo_bytep src, lzo_uint  src_len,
Packit Service 5195f2
                               lzo_bytep dst, lzo_uintp dst_len,
Packit Service 5195f2
                               lzo_voidp wrkmem );
Packit Service 5195f2
Packit Service 5195f2
  Algorithm:            LZO1X
Packit Service 5195f2
  Compression level:    LZO1X-999
Packit Service 5195f2
  Memory requirements:  LZO1X_999_MEM_COMPRESS  (448 KiB on 32-bit machines)
Packit Service 5195f2
Packit Service 5195f2
  This compressor is quite slow but achieves a good compression
Packit Service 5195f2
  ratio. It is mainly intended for generating pre-compressed data.
Packit Service 5195f2
Packit Service 5195f2
  Return value:
Packit Service 5195f2
    Always returns LZO_E_OK (this function can never fail).
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
[ ... lots of other compressors which all follow the same principle ... ]
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
3.3 Decompression
Packit Service 5195f2
-----------------
Packit Service 5195f2
Packit Service 5195f2
All decompressors decompress the memory block at 'src' with the compressed
Packit Service 5195f2
length 'src_len' to the address given by 'dst'.
Packit Service 5195f2
The length of the decompressed block will be returned in the variable
Packit Service 5195f2
pointed by 'dst_len' - on error the number of bytes that have
Packit Service 5195f2
been decompressed so far will be returned.
Packit Service 5195f2
Packit Service 5195f2
The safe decompressors expect that the number of bytes available in
Packit Service 5195f2
the 'dst' block is passed via the variable pointed by 'dst_len'.
Packit Service 5195f2
Packit Service 5195f2
The two blocks may overlap under certain conditions (see examples/overlap.c),
Packit Service 5195f2
thereby allowing "in-place" decompression.
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Description of return values:
Packit Service 5195f2
Packit Service 5195f2
  LZO_E_OK
Packit Service 5195f2
    Success.
Packit Service 5195f2
Packit Service 5195f2
  LZO_E_INPUT_NOT_CONSUMED
Packit Service 5195f2
    The end of the compressed block has been detected before all
Packit Service 5195f2
    bytes in the compressed block have been used.
Packit Service 5195f2
    This may actually not be an error (if 'src_len' is too large).
Packit Service 5195f2
Packit Service 5195f2
  LZO_E_INPUT_OVERRUN
Packit Service 5195f2
    The decompressor requested more bytes from the compressed
Packit Service 5195f2
    block than available.
Packit Service 5195f2
    Your data is corrupted (or 'src_len' is too small).
Packit Service 5195f2
Packit Service 5195f2
  LZO_E_OUTPUT_OVERRUN
Packit Service 5195f2
    The decompressor requested to write more bytes to the uncompressed
Packit Service 5195f2
    block than available.
Packit Service 5195f2
    Either your data is corrupted, or you should increase the number of
Packit Service 5195f2
    available bytes passed in the variable pointed by 'dst_len'.
Packit Service 5195f2
Packit Service 5195f2
  LZO_E_LOOKBEHIND_OVERRUN
Packit Service 5195f2
    Your data is corrupted.
Packit Service 5195f2
Packit Service 5195f2
  LZO_E_EOF_NOT_FOUND
Packit Service 5195f2
    No EOF code was found in the compressed block.
Packit Service 5195f2
    Your data is corrupted (or 'src_len' is too small).
Packit Service 5195f2
Packit Service 5195f2
  LZO_E_ERROR
Packit Service 5195f2
    Any other error (data corrupted).
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packit Service 5195f2
#include <lzo1x.h>
Packit Service 5195f2
Packit Service 5195f2
int lzo1x_decompress ( const lzo_bytep src, lzo_uint  src_len,
Packit Service 5195f2
                             lzo_bytep dst, lzo_uintp dst_len,
Packit Service 5195f2
                             lzo_voidp wrkmem );
Packit Service 5195f2
Packit Service 5195f2
  Algorithm:            LZO1X
Packit Service 5195f2
  Memory requirements:  0
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
[ ... lots of other decompressors which all follow the same principle ... ]
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
4 Variable reference
Packit Service 5195f2
====================
Packit Service 5195f2
Packit Service 5195f2
The variables are listed alphabetically.
Packit Service 5195f2
Packit Service 5195f2
[ no public variables yet ]
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
Packit Service 5195f2
--------------------------- END OF LZOAPI.TXT ------------------------------
Packit Service 5195f2