Home | History | Annotate | Line # | Download | only in dist
      1      1.1   wiz /*	$NetBSD: bzlib.h,v 1.1.1.3 2019/07/21 11:35:30 maya Exp $	*/
      2      1.1   wiz 
      3      1.1   wiz 
      4      1.1   wiz /*-------------------------------------------------------------*/
      5      1.1   wiz /*--- Public header file for the library.                   ---*/
      6      1.1   wiz /*---                                               bzlib.h ---*/
      7      1.1   wiz /*-------------------------------------------------------------*/
      8      1.1   wiz 
      9      1.1   wiz /* ------------------------------------------------------------------
     10      1.1   wiz    This file is part of bzip2/libbzip2, a program and library for
     11      1.1   wiz    lossless, block-sorting data compression.
     12      1.1   wiz 
     13  1.1.1.3  maya    bzip2/libbzip2 version 1.0.8 of 13 July 2019
     14  1.1.1.3  maya    Copyright (C) 1996-2019 Julian Seward <jseward (at) acm.org>
     15      1.1   wiz 
     16      1.1   wiz    Please read the WARNING, DISCLAIMER and PATENTS sections in the
     17      1.1   wiz    README file.
     18      1.1   wiz 
     19      1.1   wiz    This program is released under the terms of the license contained
     20      1.1   wiz    in the file LICENSE.
     21      1.1   wiz    ------------------------------------------------------------------ */
     22      1.1   wiz 
     23      1.1   wiz 
     24      1.1   wiz #ifndef _BZLIB_H
     25      1.1   wiz #define _BZLIB_H
     26      1.1   wiz 
     27      1.1   wiz #ifdef __cplusplus
     28      1.1   wiz extern "C" {
     29      1.1   wiz #endif
     30      1.1   wiz 
     31      1.1   wiz #define BZ_RUN               0
     32      1.1   wiz #define BZ_FLUSH             1
     33      1.1   wiz #define BZ_FINISH            2
     34      1.1   wiz 
     35      1.1   wiz #define BZ_OK                0
     36      1.1   wiz #define BZ_RUN_OK            1
     37      1.1   wiz #define BZ_FLUSH_OK          2
     38      1.1   wiz #define BZ_FINISH_OK         3
     39      1.1   wiz #define BZ_STREAM_END        4
     40      1.1   wiz #define BZ_SEQUENCE_ERROR    (-1)
     41      1.1   wiz #define BZ_PARAM_ERROR       (-2)
     42      1.1   wiz #define BZ_MEM_ERROR         (-3)
     43      1.1   wiz #define BZ_DATA_ERROR        (-4)
     44      1.1   wiz #define BZ_DATA_ERROR_MAGIC  (-5)
     45      1.1   wiz #define BZ_IO_ERROR          (-6)
     46      1.1   wiz #define BZ_UNEXPECTED_EOF    (-7)
     47      1.1   wiz #define BZ_OUTBUFF_FULL      (-8)
     48      1.1   wiz #define BZ_CONFIG_ERROR      (-9)
     49      1.1   wiz 
     50      1.1   wiz typedef
     51      1.1   wiz    struct {
     52      1.1   wiz       char *next_in;
     53      1.1   wiz       unsigned int avail_in;
     54      1.1   wiz       unsigned int total_in_lo32;
     55      1.1   wiz       unsigned int total_in_hi32;
     56      1.1   wiz 
     57      1.1   wiz       char *next_out;
     58      1.1   wiz       unsigned int avail_out;
     59      1.1   wiz       unsigned int total_out_lo32;
     60      1.1   wiz       unsigned int total_out_hi32;
     61      1.1   wiz 
     62      1.1   wiz       void *state;
     63      1.1   wiz 
     64      1.1   wiz       void *(*bzalloc)(void *,int,int);
     65      1.1   wiz       void (*bzfree)(void *,void *);
     66      1.1   wiz       void *opaque;
     67      1.1   wiz    }
     68      1.1   wiz    bz_stream;
     69      1.1   wiz 
     70      1.1   wiz 
     71      1.1   wiz #ifndef BZ_IMPORT
     72      1.1   wiz #define BZ_EXPORT
     73      1.1   wiz #endif
     74      1.1   wiz 
     75      1.1   wiz #ifndef BZ_NO_STDIO
     76      1.1   wiz /* Need a definitition for FILE */
     77      1.1   wiz #include <stdio.h>
     78      1.1   wiz #endif
     79      1.1   wiz 
     80      1.1   wiz #ifdef _WIN32
     81      1.1   wiz #   include <windows.h>
     82      1.1   wiz #   ifdef small
     83      1.1   wiz       /* windows.h define small to char */
     84      1.1   wiz #      undef small
     85      1.1   wiz #   endif
     86      1.1   wiz #   ifdef BZ_EXPORT
     87      1.1   wiz #   define BZ_API(func) WINAPI func
     88      1.1   wiz #   define BZ_EXTERN extern
     89      1.1   wiz #   else
     90      1.1   wiz    /* import windows dll dynamically */
     91      1.1   wiz #   define BZ_API(func) (WINAPI * func)
     92      1.1   wiz #   define BZ_EXTERN
     93      1.1   wiz #   endif
     94      1.1   wiz #else
     95      1.1   wiz #   define BZ_API(func) func
     96      1.1   wiz #   define BZ_EXTERN extern
     97      1.1   wiz #endif
     98      1.1   wiz 
     99      1.1   wiz 
    100      1.1   wiz /*-- Core (low-level) library functions --*/
    101      1.1   wiz 
    102      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
    103      1.1   wiz       bz_stream* strm,
    104      1.1   wiz       int        blockSize100k,
    105      1.1   wiz       int        verbosity,
    106      1.1   wiz       int        workFactor
    107      1.1   wiz    );
    108      1.1   wiz 
    109      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzCompress) (
    110      1.1   wiz       bz_stream* strm,
    111      1.1   wiz       int action
    112      1.1   wiz    );
    113      1.1   wiz 
    114      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
    115      1.1   wiz       bz_stream* strm
    116      1.1   wiz    );
    117      1.1   wiz 
    118      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
    119      1.1   wiz       bz_stream *strm,
    120      1.1   wiz       int       verbosity,
    121      1.1   wiz       int       small
    122      1.1   wiz    );
    123      1.1   wiz 
    124      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
    125      1.1   wiz       bz_stream* strm
    126      1.1   wiz    );
    127      1.1   wiz 
    128      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
    129      1.1   wiz       bz_stream *strm
    130      1.1   wiz    );
    131      1.1   wiz 
    132      1.1   wiz 
    133      1.1   wiz 
    134      1.1   wiz /*-- High(er) level library functions --*/
    135      1.1   wiz 
    136      1.1   wiz #ifndef BZ_NO_STDIO
    137      1.1   wiz #define BZ_MAX_UNUSED 5000
    138      1.1   wiz 
    139      1.1   wiz typedef void BZFILE;
    140      1.1   wiz 
    141      1.1   wiz BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) (
    142      1.1   wiz       int*  bzerror,
    143      1.1   wiz       FILE* f,
    144      1.1   wiz       int   verbosity,
    145      1.1   wiz       int   small,
    146      1.1   wiz       void* unused,
    147      1.1   wiz       int   nUnused
    148      1.1   wiz    );
    149      1.1   wiz 
    150      1.1   wiz BZ_EXTERN void BZ_API(BZ2_bzReadClose) (
    151      1.1   wiz       int*    bzerror,
    152      1.1   wiz       BZFILE* b
    153      1.1   wiz    );
    154      1.1   wiz 
    155      1.1   wiz BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) (
    156      1.1   wiz       int*    bzerror,
    157      1.1   wiz       BZFILE* b,
    158      1.1   wiz       void**  unused,
    159      1.1   wiz       int*    nUnused
    160      1.1   wiz    );
    161      1.1   wiz 
    162      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzRead) (
    163      1.1   wiz       int*    bzerror,
    164      1.1   wiz       BZFILE* b,
    165      1.1   wiz       void*   buf,
    166      1.1   wiz       int     len
    167      1.1   wiz    );
    168      1.1   wiz 
    169      1.1   wiz BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) (
    170      1.1   wiz       int*  bzerror,
    171      1.1   wiz       FILE* f,
    172      1.1   wiz       int   blockSize100k,
    173      1.1   wiz       int   verbosity,
    174      1.1   wiz       int   workFactor
    175      1.1   wiz    );
    176      1.1   wiz 
    177      1.1   wiz BZ_EXTERN void BZ_API(BZ2_bzWrite) (
    178      1.1   wiz       int*    bzerror,
    179      1.1   wiz       BZFILE* b,
    180      1.1   wiz       void*   buf,
    181      1.1   wiz       int     len
    182      1.1   wiz    );
    183      1.1   wiz 
    184      1.1   wiz BZ_EXTERN void BZ_API(BZ2_bzWriteClose) (
    185      1.1   wiz       int*          bzerror,
    186      1.1   wiz       BZFILE*       b,
    187      1.1   wiz       int           abandon,
    188      1.1   wiz       unsigned int* nbytes_in,
    189      1.1   wiz       unsigned int* nbytes_out
    190      1.1   wiz    );
    191      1.1   wiz 
    192      1.1   wiz BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) (
    193      1.1   wiz       int*          bzerror,
    194      1.1   wiz       BZFILE*       b,
    195      1.1   wiz       int           abandon,
    196      1.1   wiz       unsigned int* nbytes_in_lo32,
    197      1.1   wiz       unsigned int* nbytes_in_hi32,
    198      1.1   wiz       unsigned int* nbytes_out_lo32,
    199      1.1   wiz       unsigned int* nbytes_out_hi32
    200      1.1   wiz    );
    201      1.1   wiz #endif
    202      1.1   wiz 
    203      1.1   wiz 
    204      1.1   wiz /*-- Utility functions --*/
    205      1.1   wiz 
    206      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) (
    207      1.1   wiz       char*         dest,
    208      1.1   wiz       unsigned int* destLen,
    209      1.1   wiz       char*         source,
    210      1.1   wiz       unsigned int  sourceLen,
    211      1.1   wiz       int           blockSize100k,
    212      1.1   wiz       int           verbosity,
    213      1.1   wiz       int           workFactor
    214      1.1   wiz    );
    215      1.1   wiz 
    216      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) (
    217      1.1   wiz       char*         dest,
    218      1.1   wiz       unsigned int* destLen,
    219      1.1   wiz       char*         source,
    220      1.1   wiz       unsigned int  sourceLen,
    221      1.1   wiz       int           small,
    222      1.1   wiz       int           verbosity
    223      1.1   wiz    );
    224      1.1   wiz 
    225      1.1   wiz 
    226      1.1   wiz /*--
    227      1.1   wiz    Code contributed by Yoshioka Tsuneo (tsuneo (at) rr.iij4u.or.jp)
    228      1.1   wiz    to support better zlib compatibility.
    229      1.1   wiz    This code is not _officially_ part of libbzip2 (yet);
    230      1.1   wiz    I haven't tested it, documented it, or considered the
    231      1.1   wiz    threading-safeness of it.
    232      1.1   wiz    If this code breaks, please contact both Yoshioka and me.
    233      1.1   wiz --*/
    234      1.1   wiz 
    235      1.1   wiz BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
    236      1.1   wiz       void
    237      1.1   wiz    );
    238      1.1   wiz 
    239      1.1   wiz #ifndef BZ_NO_STDIO
    240      1.1   wiz BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
    241      1.1   wiz       const char *path,
    242      1.1   wiz       const char *mode
    243      1.1   wiz    );
    244      1.1   wiz 
    245      1.1   wiz BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
    246      1.1   wiz       int        fd,
    247      1.1   wiz       const char *mode
    248      1.1   wiz    );
    249      1.1   wiz 
    250      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzread) (
    251      1.1   wiz       BZFILE* b,
    252      1.1   wiz       void* buf,
    253      1.1   wiz       int len
    254      1.1   wiz    );
    255      1.1   wiz 
    256      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzwrite) (
    257      1.1   wiz       BZFILE* b,
    258      1.1   wiz       void*   buf,
    259      1.1   wiz       int     len
    260      1.1   wiz    );
    261      1.1   wiz 
    262      1.1   wiz BZ_EXTERN int BZ_API(BZ2_bzflush) (
    263      1.1   wiz       BZFILE* b
    264      1.1   wiz    );
    265      1.1   wiz 
    266      1.1   wiz BZ_EXTERN void BZ_API(BZ2_bzclose) (
    267      1.1   wiz       BZFILE* b
    268      1.1   wiz    );
    269      1.1   wiz 
    270      1.1   wiz BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
    271      1.1   wiz       BZFILE *b,
    272      1.1   wiz       int    *errnum
    273      1.1   wiz    );
    274      1.1   wiz #endif
    275      1.1   wiz 
    276      1.1   wiz #ifdef __cplusplus
    277      1.1   wiz }
    278      1.1   wiz #endif
    279      1.1   wiz 
    280      1.1   wiz #endif
    281      1.1   wiz 
    282      1.1   wiz /*-------------------------------------------------------------*/
    283      1.1   wiz /*--- end                                           bzlib.h ---*/
    284      1.1   wiz /*-------------------------------------------------------------*/
    285