Home | History | Annotate | Line # | Download | only in os400
zlibfixed.rpgle revision 1.1.1.1
      1  1.1  christos       *  ZLIB.INC - Interface to the general purpose compression library
      2  1.1  christos       *
      3  1.1  christos       *  ILE RPG400 version by Patrick Monnerat, DATASPHERE.
      4  1.1  christos       *  Version 1.3.2
      5  1.1  christos       *
      6  1.1  christos       *
      7  1.1  christos       *  WARNING:
      8  1.1  christos       *     Procedures inflateInit(), inflateInit2(), deflateInit(),
      9  1.1  christos       *         deflateInit2() and inflateBackInit() need to be called with
     10  1.1  christos       *         two additional arguments:
     11  1.1  christos       *         the package version string and the stream control structure.
     12  1.1  christos       *         size. This is needed because RPG lacks some macro feature.
     13  1.1  christos       *         Call these procedures as:
     14  1.1  christos       *             inflateInit(...: ZLIB_VERSION: %size(z_stream))
     15  1.1  christos       *
     16  1.1  christos       /if not defined(ZLIB_H_)
     17  1.1  christos       /define ZLIB_H_
     18  1.1  christos       *
     19  1.1  christos       **************************************************************************
     20  1.1  christos       *                               Constants
     21  1.1  christos       **************************************************************************
     22  1.1  christos       *
     23  1.1  christos       *  Versioning information.
     24  1.1  christos       *
     25  1.1  christos      D ZLIB_VERSION    C                   '1.3.2'
     26  1.1  christos      D ZLIB_VERNUM     C                   X'1320'
     27  1.1  christos      D ZLIB_VER_MAJOR  C                   1
     28  1.1  christos      D ZLIB_VER_MINOR  C                   3
     29  1.1  christos      D ZLIB_VER_REVISION...
     30  1.1  christos      D                 C                   2
     31  1.1  christos      D ZLIB_VER_SUBREVISION...
     32  1.1  christos      D                 C                   0
     33  1.1  christos       *
     34  1.1  christos       *  Other equates.
     35  1.1  christos       *
     36  1.1  christos      D Z_NO_FLUSH      C                   0
     37  1.1  christos      D Z_PARTIAL_FLUSH...
     38  1.1  christos      D                 C                   1
     39  1.1  christos      D Z_SYNC_FLUSH    C                   2
     40  1.1  christos      D Z_FULL_FLUSH    C                   3
     41  1.1  christos      D Z_FINISH        C                   4
     42  1.1  christos      D Z_BLOCK         C                   5
     43  1.1  christos      D Z_TREES         C                   6
     44  1.1  christos       *
     45  1.1  christos      D Z_OK            C                   0
     46  1.1  christos      D Z_STREAM_END    C                   1
     47  1.1  christos      D Z_NEED_DICT     C                   2
     48  1.1  christos      D Z_ERRNO         C                   -1
     49  1.1  christos      D Z_STREAM_ERROR  C                   -2
     50  1.1  christos      D Z_DATA_ERROR    C                   -3
     51  1.1  christos      D Z_MEM_ERROR     C                   -4
     52  1.1  christos      D Z_BUF_ERROR     C                   -5
     53  1.1  christos      D Z_VERSION_ERROR...
     54  1.1  christos      D                 C                   -6
     55  1.1  christos       *
     56  1.1  christos      D Z_NO_COMPRESSION...
     57  1.1  christos      D                 C                   0
     58  1.1  christos      D Z_BEST_SPEED    C                   1
     59  1.1  christos      D Z_BEST_COMPRESSION...
     60  1.1  christos      D                 C                   9
     61  1.1  christos      D Z_DEFAULT_COMPRESSION...
     62  1.1  christos      D                 C                   -1
     63  1.1  christos       *
     64  1.1  christos      D Z_FILTERED      C                   1
     65  1.1  christos      D Z_HUFFMAN_ONLY  C                   2
     66  1.1  christos      D Z_RLE           C                   3
     67  1.1  christos      D Z_DEFAULT_STRATEGY...
     68  1.1  christos      D                 C                   0
     69  1.1  christos       *
     70  1.1  christos      D Z_BINARY        C                   0
     71  1.1  christos      D Z_ASCII         C                   1
     72  1.1  christos      D Z_UNKNOWN       C                   2
     73  1.1  christos       *
     74  1.1  christos      D Z_DEFLATED      C                   8
     75  1.1  christos       *
     76  1.1  christos      D Z_NULL          C                   0
     77  1.1  christos       *
     78  1.1  christos       **************************************************************************
     79  1.1  christos       *                                 Types
     80  1.1  christos       **************************************************************************
     81  1.1  christos       *
     82  1.1  christos      D z_streamp       S               *                                        Stream struct ptr
     83  1.1  christos      D gzFile          S               *                                        File pointer
     84  1.1  christos      D gz_headerp      S               *
     85  1.1  christos      D z_off_t         S             10i 0                                      Stream offsets
     86  1.1  christos      D z_off64_t       S             20i 0                                      Stream offsets
     87  1.1  christos       *
     88  1.1  christos       **************************************************************************
     89  1.1  christos       *                               Structures
     90  1.1  christos       **************************************************************************
     91  1.1  christos       *
     92  1.1  christos       *  The GZIP encode/decode stream support structure.
     93  1.1  christos       *
     94  1.1  christos      D z_stream        DS                  align based(z_streamp)
     95  1.1  christos      D  zs_next_in                     *                                        Next input byte
     96  1.1  christos      D  zs_avail_in                  10U 0                                      Byte cnt at next_in
     97  1.1  christos      D  zs_total_in                  10U 0                                      Total bytes read
     98  1.1  christos      D  zs_next_out                    *                                        Output buffer ptr
     99  1.1  christos      D  zs_avail_out                 10U 0                                      Room left @ next_out
    100  1.1  christos      D  zs_total_out                 10U 0                                      Total bytes written
    101  1.1  christos      D  zs_msg                         *                                        Last errmsg or null
    102  1.1  christos      D  zs_state                       *                                        Internal state
    103  1.1  christos      D  zs_zalloc                      *   procptr                              Int. state allocator
    104  1.1  christos      D  zs_free                        *   procptr                              Int. state dealloc.
    105  1.1  christos      D  zs_opaque                      *                                        Private alloc. data
    106  1.1  christos      D  zs_data_type                 10i 0                                      ASC/BIN best guess
    107  1.1  christos      D  zs_adler                     10u 0                                      Uncompr. adler32 val
    108  1.1  christos      D                               10U 0                                      Reserved
    109  1.1  christos      D                               10U 0                                      Ptr. alignment
    110  1.1  christos       *
    111  1.1  christos       **************************************************************************
    112  1.1  christos       *                     Utility function prototypes
    113  1.1  christos       **************************************************************************
    114  1.1  christos       *
    115  1.1  christos      D compress        PR            10I 0 extproc('compress')
    116  1.1  christos      D  dest                      65535    options(*varsize)                    Destination buffer
    117  1.1  christos      D  destLen                      10U 0                                      Destination length
    118  1.1  christos      D  source                    65535    const options(*varsize)              Source buffer
    119  1.1  christos      D  sourceLen                    10u 0 value                                Source length
    120  1.1  christos       *
    121  1.1  christos      D compress2       PR            10I 0 extproc('compress2')
    122  1.1  christos      D  dest                      65535    options(*varsize)                    Destination buffer
    123  1.1  christos      D  destLen                      10U 0                                      Destination length
    124  1.1  christos      D  source                    65535    const options(*varsize)              Source buffer
    125  1.1  christos      D  sourceLen                    10U 0 value                                Source length
    126  1.1  christos      D  level                        10I 0 value                                Compression level
    127  1.1  christos       *
    128  1.1  christos      D compress_z      PR            10I 0 extproc('compress')
    129  1.1  christos      D  dest                      65535    options(*varsize)                    Destination buffer
    130  1.1  christos      D  destLen                      20U 0                                      Destination length
    131  1.1  christos      D  source                    65535    const options(*varsize)              Source buffer
    132  1.1  christos      D  sourceLen                    20u 0 value                                Source length
    133  1.1  christos       *
    134  1.1  christos      D compress2_z     PR            10I 0 extproc('compress2')
    135  1.1  christos      D  dest                      65535    options(*varsize)                    Destination buffer
    136  1.1  christos      D  destLen                      20U 0                                      Destination length
    137  1.1  christos      D  source                    65535    const options(*varsize)              Source buffer
    138  1.1  christos      D  sourceLen                    20U 0 value                                Source length
    139  1.1  christos      D  level                        10I 0 value                                Compression level
    140  1.1  christos       *
    141  1.1  christos      D compressBound   PR            10U 0 extproc('compressBound')
    142  1.1  christos      D  sourceLen                    10U 0 value
    143  1.1  christos       *
    144  1.1  christos      D compressBound_z PR            20U 0 extproc('compressBound')
    145  1.1  christos      D  sourceLen                    20U 0 value
    146  1.1  christos       *
    147  1.1  christos      D uncompress      PR            10I 0 extproc('uncompress')
    148  1.1  christos      D  dest                      65535    options(*varsize)                    Destination buffer
    149  1.1  christos      D  destLen                      10U 0                                      Destination length
    150  1.1  christos      D  source                    65535    const options(*varsize)              Source buffer
    151  1.1  christos      D  sourceLen                    10U 0 value                                Source length
    152  1.1  christos       *
    153  1.1  christos      D uncompress2     PR            10I 0 extproc('uncompress2')
    154  1.1  christos      D  dest                      65535    options(*varsize)                    Destination buffer
    155  1.1  christos      D  destLen                      10U 0                                      Destination length
    156  1.1  christos      D  source                    65535    const options(*varsize)              Source buffer
    157  1.1  christos      D  sourceLen                    10U 0                                      Source length
    158  1.1  christos       *
    159  1.1  christos      D uncompress_z    PR            10I 0 extproc('uncompress')
    160  1.1  christos      D  dest                      65535    options(*varsize)                    Destination buffer
    161  1.1  christos      D  destLen                      20U 0                                      Destination length
    162  1.1  christos      D  source                    65535    const options(*varsize)              Source buffer
    163  1.1  christos      D  sourceLen                    20U 0 value                                Source length
    164  1.1  christos       *
    165  1.1  christos      D uncompress2_z   PR            10I 0 extproc('uncompress2')
    166  1.1  christos      D  dest                      65535    options(*varsize)                    Destination buffer
    167  1.1  christos      D  destLen                      20U 0                                      Destination length
    168  1.1  christos      D  source                    65535    const options(*varsize)              Source buffer
    169  1.1  christos      D  sourceLen                    20U 0                                      Source length
    170  1.1  christos       *
    171  1.1  christos       /if not defined(LARGE_FILES)
    172  1.1  christos      D gzopen          PR                  extproc('gzopen')
    173  1.1  christos      D                                     like(gzFile)
    174  1.1  christos      D  path                           *   value options(*string)               File pathname
    175  1.1  christos      D  mode                           *   value options(*string)               Open mode
    176  1.1  christos       /else
    177  1.1  christos      D gzopen          PR                  extproc('gzopen64')
    178  1.1  christos      D                                     like(gzFile)
    179  1.1  christos      D  path                           *   value options(*string)               File pathname
    180  1.1  christos      D  mode                           *   value options(*string)               Open mode
    181  1.1  christos       *
    182  1.1  christos      D gzopen64        PR                  extproc('gzopen64')
    183  1.1  christos      D                                     like(gzFile)
    184  1.1  christos      D  path                           *   value options(*string)               File pathname
    185  1.1  christos      D  mode                           *   value options(*string)               Open mode
    186  1.1  christos       /endif
    187  1.1  christos       *
    188  1.1  christos      D gzdopen         PR                  extproc('gzdopen')
    189  1.1  christos      D                                     like(gzFile)
    190  1.1  christos      D  fd                           10I 0 value                                File descriptor
    191  1.1  christos      D  mode                           *   value options(*string)               Open mode
    192  1.1  christos       *
    193  1.1  christos      D gzbuffer        PR            10I 0 extproc('gzbuffer')
    194  1.1  christos      D  file                               value like(gzFile)                   File pointer
    195  1.1  christos      D  size                         10U 0 value
    196  1.1  christos       *
    197  1.1  christos      D gzsetparams     PR            10I 0 extproc('gzsetparams')
    198  1.1  christos      D  file                               value like(gzFile)                   File pointer
    199  1.1  christos      D  level                        10I 0 value
    200  1.1  christos      D  strategy                     10I 0 value
    201  1.1  christos       *
    202  1.1  christos      D gzread          PR            10I 0 extproc('gzread')
    203  1.1  christos      D  file                               value like(gzFile)                   File pointer
    204  1.1  christos      D  buf                       65535    options(*varsize)                    Buffer
    205  1.1  christos      D  len                          10u 0 value                                Buffer length
    206  1.1  christos       *
    207  1.1  christos      D gzfread         PR            20I 0 extproc('gzfread')
    208  1.1  christos      D  buf                       65535    options(*varsize)                    Buffer
    209  1.1  christos      D  size                         20u 0 value                                Buffer length
    210  1.1  christos      D  nitems                       20u 0 value                                Buffer length
    211  1.1  christos      D  file                               value like(gzFile)                   File pointer
    212  1.1  christos       *
    213  1.1  christos      D gzwrite         PR            10I 0 extproc('gzwrite')
    214  1.1  christos      D  file                               value like(gzFile)                   File pointer
    215  1.1  christos      D  buf                       65535    const options(*varsize)              Buffer
    216  1.1  christos      D  len                          10u 0 value                                Buffer length
    217  1.1  christos       *
    218  1.1  christos      D gzfwrite        PR            20I 0 extproc('gzfwrite')
    219  1.1  christos      D  buf                       65535    options(*varsize)                    Buffer
    220  1.1  christos      D  size                         20u 0 value                                Buffer length
    221  1.1  christos      D  nitems                       20u 0 value                                Buffer length
    222  1.1  christos      D  file                               value like(gzFile)                   File pointer
    223  1.1  christos       *
    224  1.1  christos      D gzputs          PR            10I 0 extproc('gzputs')
    225  1.1  christos      D  file                               value like(gzFile)                   File pointer
    226  1.1  christos      D  s                              *   value options(*string)               String to output
    227  1.1  christos       *
    228  1.1  christos      D gzgets          PR              *   extproc('gzgets')
    229  1.1  christos      D  file                               value like(gzFile)                   File pointer
    230  1.1  christos      D  buf                       65535    options(*varsize)                    Read buffer
    231  1.1  christos      D  len                          10i 0 value                                Buffer length
    232  1.1  christos       *
    233  1.1  christos      D gzputc          PR            10i 0 extproc('gzputc')
    234  1.1  christos      D  file                               value like(gzFile)                   File pointer
    235  1.1  christos      D  c                            10I 0 value                                Character to write
    236  1.1  christos       *
    237  1.1  christos      D gzgetc          PR            10i 0 extproc('gzgetc')
    238  1.1  christos      D  file                               value like(gzFile)                   File pointer
    239  1.1  christos       *
    240  1.1  christos      D gzgetc_         PR            10i 0 extproc('gzgetc_')
    241  1.1  christos      D  file                               value like(gzFile)                   File pointer
    242  1.1  christos       *
    243  1.1  christos      D gzungetc        PR            10i 0 extproc('gzungetc')
    244  1.1  christos      D  c                            10I 0 value                                Character to push
    245  1.1  christos      D  file                               value like(gzFile)                   File pointer
    246  1.1  christos       *
    247  1.1  christos      D gzflush         PR            10i 0 extproc('gzflush')
    248  1.1  christos      D  file                               value like(gzFile)                   File pointer
    249  1.1  christos      D  flush                        10I 0 value                                Type of flush
    250  1.1  christos       *
    251  1.1  christos       /if not defined(LARGE_FILES)
    252  1.1  christos      D gzseek          PR                  extproc('gzseek')
    253  1.1  christos      D                                     like(z_off_t)
    254  1.1  christos      D  file                               value like(gzFile)                   File pointer
    255  1.1  christos      D  offset                             value like(z_off_t)                  Offset
    256  1.1  christos      D  whence                       10i 0 value                                Origin
    257  1.1  christos       /else
    258  1.1  christos      D gzseek          PR                  extproc('gzseek64')
    259  1.1  christos      D                                     like(z_off_t)
    260  1.1  christos      D  file                               value like(gzFile)                   File pointer
    261  1.1  christos      D  offset                             value like(z_off_t)                  Offset
    262  1.1  christos      D  whence                       10i 0 value                                Origin
    263  1.1  christos       *
    264  1.1  christos      D gzseek64        PR                  extproc('gzseek64')
    265  1.1  christos      D                                     like(z_off64_t)
    266  1.1  christos      D  file                               value like(gzFile)                   File pointer
    267  1.1  christos      D  offset                             value like(z_off64_t)                Offset
    268  1.1  christos      D  whence                       10i 0 value                                Origin
    269  1.1  christos       /endif
    270  1.1  christos       *
    271  1.1  christos      D gzrewind        PR            10i 0 extproc('gzrewind')
    272  1.1  christos      D  file                               value like(gzFile)                   File pointer
    273  1.1  christos       *
    274  1.1  christos       /if not defined(LARGE_FILES)
    275  1.1  christos      D gztell          PR                  extproc('gztell')
    276  1.1  christos      D                                     like(z_off_t)
    277  1.1  christos      D  file                               value like(gzFile)                   File pointer
    278  1.1  christos       /else
    279  1.1  christos      D gztell          PR                  extproc('gztell64')
    280  1.1  christos      D                                     like(z_off_t)
    281  1.1  christos      D  file                               value like(gzFile)                   File pointer
    282  1.1  christos       *
    283  1.1  christos      D gztell64        PR                  extproc('gztell64')
    284  1.1  christos      D                                     like(z_off64_t)
    285  1.1  christos      D  file                               value like(gzFile)                   File pointer
    286  1.1  christos       /endif
    287  1.1  christos       *
    288  1.1  christos       /if not defined(LARGE_FILES)
    289  1.1  christos      D gzoffset        PR                  extproc('gzoffset')
    290  1.1  christos      D                                     like(z_off_t)
    291  1.1  christos      D  file                               value like(gzFile)                   File pointer
    292  1.1  christos       /else
    293  1.1  christos      D gzoffset        PR                  extproc('gzoffset64')
    294  1.1  christos      D                                     like(z_off_t)
    295  1.1  christos      D  file                               value like(gzFile)                   File pointer
    296  1.1  christos       *
    297  1.1  christos      D gzoffset64      PR                  extproc('gzoffset64')
    298  1.1  christos      D                                     like(z_off64_t)
    299  1.1  christos      D  file                               value like(gzFile)                   File pointer
    300  1.1  christos       /endif
    301  1.1  christos       *
    302  1.1  christos      D gzeof           PR            10i 0 extproc('gzeof')
    303  1.1  christos      D  file                               value like(gzFile)                   File pointer
    304  1.1  christos       *
    305  1.1  christos      D gzdirect        PR            10i 0 extproc('gzdirect')
    306  1.1  christos      D  file                               value like(gzFile)                   File pointer
    307  1.1  christos       *
    308  1.1  christos      D gzclose_r       PR            10i 0 extproc('gzclose_r')
    309  1.1  christos      D  file                               value like(gzFile)                   File pointer
    310  1.1  christos       *
    311  1.1  christos      D gzclose_w       PR            10i 0 extproc('gzclose_w')
    312  1.1  christos      D  file                               value like(gzFile)                   File pointer
    313  1.1  christos       *
    314  1.1  christos      D gzclose         PR            10i 0 extproc('gzclose')
    315  1.1  christos      D  file                               value like(gzFile)                   File pointer
    316  1.1  christos       *
    317  1.1  christos      D gzerror         PR              *   extproc('gzerror')                   Error string
    318  1.1  christos      D  file                               value like(gzFile)                   File pointer
    319  1.1  christos      D  errnum                       10I 0                                      Error code
    320  1.1  christos       *
    321  1.1  christos      D gzclearerr      PR                  extproc('gzclearerr')
    322  1.1  christos      D  file                               value like(gzFile)                   File pointer
    323  1.1  christos       *
    324  1.1  christos       **************************************************************************
    325  1.1  christos       *                        Basic function prototypes
    326  1.1  christos       **************************************************************************
    327  1.1  christos       *
    328  1.1  christos      D zlibVersion     PR              *   extproc('zlibVersion')               Version string
    329  1.1  christos       *
    330  1.1  christos      D deflateInit     PR            10I 0 extproc('deflateInit_')              Init. compression
    331  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    332  1.1  christos      D  level                        10I 0 value                                Compression level
    333  1.1  christos      D  version                        *   value options(*string)               Version string
    334  1.1  christos      D  stream_size                  10i 0 value                                Stream struct. size
    335  1.1  christos       *
    336  1.1  christos      D deflate         PR            10I 0 extproc('deflate')                   Compress data
    337  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    338  1.1  christos      D  flush                        10I 0 value                                Flush type required
    339  1.1  christos       *
    340  1.1  christos      D deflateEnd      PR            10I 0 extproc('deflateEnd')                Termin. compression
    341  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    342  1.1  christos       *
    343  1.1  christos      D inflateInit     PR            10I 0 extproc('inflateInit_')              Init. expansion
    344  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    345  1.1  christos      D  version                        *   value options(*string)               Version string
    346  1.1  christos      D  stream_size                  10i 0 value                                Stream struct. size
    347  1.1  christos       *
    348  1.1  christos      D inflate         PR            10I 0 extproc('inflate')                   Expand data
    349  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    350  1.1  christos      D  flush                        10I 0 value                                Flush type required
    351  1.1  christos       *
    352  1.1  christos      D inflateEnd      PR            10I 0 extproc('inflateEnd')                Termin. expansion
    353  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    354  1.1  christos       *
    355  1.1  christos       **************************************************************************
    356  1.1  christos       *                        Advanced function prototypes
    357  1.1  christos       **************************************************************************
    358  1.1  christos       *
    359  1.1  christos      D deflateInit2    PR            10I 0 extproc('deflateInit2_')             Init. compression
    360  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    361  1.1  christos      D  level                        10I 0 value                                Compression level
    362  1.1  christos      D  method                       10I 0 value                                Compression method
    363  1.1  christos      D  windowBits                   10I 0 value                                log2(window size)
    364  1.1  christos      D  memLevel                     10I 0 value                                Mem/cmpress tradeoff
    365  1.1  christos      D  strategy                     10I 0 value                                Compression strategy
    366  1.1  christos      D  version                        *   value options(*string)               Version string
    367  1.1  christos      D  stream_size                  10i 0 value                                Stream struct. size
    368  1.1  christos       *
    369  1.1  christos      D deflateSetDictionary...
    370  1.1  christos      D                 PR            10I 0 extproc('deflateSetDictionary')      Init. dictionary
    371  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    372  1.1  christos      D  dictionary                65535    const options(*varsize)              Dictionary bytes
    373  1.1  christos      D  dictLength                   10U 0 value                                Dictionary length
    374  1.1  christos       *
    375  1.1  christos      D deflateCopy     PR            10I 0 extproc('deflateCopy')               Compress strm 2 strm
    376  1.1  christos      D  dest                               like(z_stream)                       Destination stream
    377  1.1  christos      D  source                             like(z_stream)                       Source stream
    378  1.1  christos       *
    379  1.1  christos      D deflateReset    PR            10I 0 extproc('deflateReset')              End and init. stream
    380  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    381  1.1  christos       *
    382  1.1  christos      D deflateParams   PR            10I 0 extproc('deflateParams')             Change level & strat
    383  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    384  1.1  christos      D  level                        10I 0 value                                Compression level
    385  1.1  christos      D  strategy                     10I 0 value                                Compression strategy
    386  1.1  christos       *
    387  1.1  christos      D deflateTune     PR            10I 0 extproc('deflateTune')
    388  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    389  1.1  christos      D  good                         10I 0 value
    390  1.1  christos      D  lazy                         10I 0 value
    391  1.1  christos      D  nice                         10I 0 value
    392  1.1  christos      D  chain                        10I 0 value
    393  1.1  christos       *
    394  1.1  christos      D deflateBound    PR            10U 0 extproc('deflateBound')              Change level & strat
    395  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    396  1.1  christos      D  sourcelen                    10U 0 value                                Compression level
    397  1.1  christos       *
    398  1.1  christos      D deflateBound_z  PR            20U 0 extproc('deflateBound')              Change level & strat
    399  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    400  1.1  christos      D  sourcelen                    20U 0 value                                Compression level
    401  1.1  christos       *
    402  1.1  christos      D deflatePending  PR            10I 0 extproc('deflatePending')            Change level & strat
    403  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    404  1.1  christos      D  pending                      10U 0                                      Pending bytes
    405  1.1  christos      D  bits                         10I 0                                      Pending bits
    406  1.1  christos       *
    407  1.1  christos      D deflateUsed     PR            10I 0 extproc('deflateUsed')               Get used bits
    408  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    409  1.1  christos      D  bits                         10I 0                                      Used bits
    410  1.1  christos       *
    411  1.1  christos      D deflatePrime    PR            10I 0 extproc('deflatePrime')              Change level & strat
    412  1.1  christos      D  strm                               like(z_stream)                       Compression stream
    413  1.1  christos      D  bits                         10I 0 value                                # of bits to insert
    414  1.1  christos      D  value                        10I 0 value                                Bits to insert
    415  1.1  christos       *
    416  1.1  christos      D inflateInit2    PR            10I 0 extproc('inflateInit2_')             Init. expansion
    417  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    418  1.1  christos      D  windowBits                   10I 0 value                                log2(window size)
    419  1.1  christos      D  version                        *   value options(*string)               Version string
    420  1.1  christos      D  stream_size                  10i 0 value                                Stream struct. size
    421  1.1  christos       *
    422  1.1  christos      D inflateSetDictionary...
    423  1.1  christos      D                 PR            10I 0 extproc('inflateSetDictionary')      Init. dictionary
    424  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    425  1.1  christos      D  dictionary                65535    const options(*varsize)              Dictionary bytes
    426  1.1  christos      D  dictLength                   10U 0 value                                Dictionary length
    427  1.1  christos       *
    428  1.1  christos      D inflateGetDictionary...
    429  1.1  christos      D                 PR            10I 0 extproc('inflateGetDictionary')      Get dictionary
    430  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    431  1.1  christos      D  dictionary                65535    options(*varsize)                    Dictionary bytes
    432  1.1  christos      D  dictLength                   10U 0                                      Dictionary length
    433  1.1  christos       *
    434  1.1  christos      D deflateGetDictionary...
    435  1.1  christos      D                 PR            10I 0 extproc('deflateGetDictionary')      Get dictionary
    436  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    437  1.1  christos      D  dictionary                65535    options(*varsize)                    Dictionary bytes
    438  1.1  christos      D  dictLength                   10U 0                                      Dictionary length
    439  1.1  christos       *
    440  1.1  christos      D inflateSync     PR            10I 0 extproc('inflateSync')               Sync. expansion
    441  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    442  1.1  christos       *
    443  1.1  christos      D inflateCopy     PR            10I 0 extproc('inflateCopy')
    444  1.1  christos      D  dest                               like(z_stream)                       Destination stream
    445  1.1  christos      D  source                             like(z_stream)                       Source stream
    446  1.1  christos       *
    447  1.1  christos      D inflateReset    PR            10I 0 extproc('inflateReset')              End and init. stream
    448  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    449  1.1  christos       *
    450  1.1  christos      D inflateReset2   PR            10I 0 extproc('inflateReset2')             End and init. stream
    451  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    452  1.1  christos      D  windowBits                   10I 0 value                                Log2(buffer size)
    453  1.1  christos       *
    454  1.1  christos      D inflatePrime    PR            10I 0 extproc('inflatePrime')              Insert bits
    455  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    456  1.1  christos      D  bits                         10I 0 value                                Bit count
    457  1.1  christos      D  value                        10I 0 value                                Bits to insert
    458  1.1  christos       *
    459  1.1  christos      D inflateMark     PR            10I 0 extproc('inflateMark')               Get inflate info
    460  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    461  1.1  christos       *
    462  1.1  christos      D inflateCodesUsed...
    463  1.1  christos      D                 PR            20U 0 extproc('inflateCodesUsed')
    464  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    465  1.1  christos       *
    466  1.1  christos      D inflateValidate...
    467  1.1  christos      D                 PR            20U 0 extproc('inflateValidate')
    468  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    469  1.1  christos      D  check                        10I 0 value
    470  1.1  christos       *
    471  1.1  christos      D inflateGetHeader...
    472  1.1  christos      D                 PR            10U 0 extproc('inflateGetHeader')
    473  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    474  1.1  christos      D  head                               like(gz_headerp)
    475  1.1  christos       *
    476  1.1  christos      D deflateSetHeader...
    477  1.1  christos      D                 PR            10U 0 extproc('deflateSetHeader')
    478  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    479  1.1  christos      D  head                               like(gz_headerp)
    480  1.1  christos       *
    481  1.1  christos      D inflateBackInit...
    482  1.1  christos      D                 PR            10I 0 extproc('inflateBackInit_')
    483  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    484  1.1  christos      D  windowBits                   10I 0 value                                Log2(buffer size)
    485  1.1  christos      D  window                    65535    options(*varsize)                    Buffer
    486  1.1  christos      D  version                        *   value options(*string)               Version string
    487  1.1  christos      D  stream_size                  10i 0 value                                Stream struct. size
    488  1.1  christos       *
    489  1.1  christos      D inflateBack     PR            10I 0 extproc('inflateBack')
    490  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    491  1.1  christos      D  in                             *   value procptr                        Input function
    492  1.1  christos      D  in_desc                        *   value                                Input descriptor
    493  1.1  christos      D  out                            *   value procptr                        Output function
    494  1.1  christos      D  out_desc                       *   value                                Output descriptor
    495  1.1  christos       *
    496  1.1  christos      D inflateBackEnd  PR            10I 0 extproc('inflateBackEnd')
    497  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    498  1.1  christos       *
    499  1.1  christos      D zlibCompileFlags...
    500  1.1  christos      D                 PR            10U 0 extproc('zlibCompileFlags')
    501  1.1  christos       *
    502  1.1  christos       **************************************************************************
    503  1.1  christos       *                        Checksum function prototypes
    504  1.1  christos       **************************************************************************
    505  1.1  christos       *
    506  1.1  christos      D adler32         PR            10U 0 extproc('adler32')                   New checksum
    507  1.1  christos      D  adler                        10U 0 value                                Old checksum
    508  1.1  christos      D  buf                       65535    const options(*varsize)              Bytes to accumulate
    509  1.1  christos      D  len                          10U 0 value                                Buffer length
    510  1.1  christos       *
    511  1.1  christos      D adler32_combine...
    512  1.1  christos      D                 PR            10U 0 extproc('adler32_combine')           New checksum
    513  1.1  christos      D  adler1                       10U 0 value                                Old checksum
    514  1.1  christos      D  adler2                       10U 0 value                                Old checksum
    515  1.1  christos      D  len2                         20U 0 value                                Buffer length
    516  1.1  christos       *
    517  1.1  christos      D adler32_z       PR            10U 0 extproc('adler32_z')                 New checksum
    518  1.1  christos      D  adler                        10U 0 value                                Old checksum
    519  1.1  christos      D  buf                       65535    const options(*varsize)              Bytes to accumulate
    520  1.1  christos      D  len                          20U 0 value                                Buffer length
    521  1.1  christos       *
    522  1.1  christos      D crc32           PR            10U 0 extproc('crc32')                     New checksum
    523  1.1  christos      D  crc                          10U 0 value                                Old checksum
    524  1.1  christos      D  buf                       65535    const options(*varsize)              Bytes to accumulate
    525  1.1  christos      D  len                          10U 0 value                                Buffer length
    526  1.1  christos       *
    527  1.1  christos      D crc32_combine...
    528  1.1  christos      D                 PR            10U 0 extproc('crc32_combine')             New checksum
    529  1.1  christos      D  crc1                         10U 0 value                                Old checksum
    530  1.1  christos      D  crc2                         10U 0 value                                Old checksum
    531  1.1  christos      D  len2                         20U 0 value                                Buffer length
    532  1.1  christos       *
    533  1.1  christos      D crc32_z         PR            10U 0 extproc('crc32_z')                   New checksum
    534  1.1  christos      D  crc                          10U 0 value                                Old checksum
    535  1.1  christos      D  buf                       65535    const options(*varsize)              Bytes to accumulate
    536  1.1  christos      D  len                          20U 0 value                                Buffer length
    537  1.1  christos       *
    538  1.1  christos      D crc32_combine_gen...
    539  1.1  christos      D                 PR            10U 0 extproc('crc32_combine_gen')         Operator
    540  1.1  christos      D  len2                         20U 0 value                                Buffer length
    541  1.1  christos       *
    542  1.1  christos      D crc32_combine_gen64...
    543  1.1  christos      D                 PR            10U 0 extproc('crc32_combine_gen64')       Operator
    544  1.1  christos      D  len2                         20U 0 value                                Buffer length
    545  1.1  christos       *
    546  1.1  christos      D crc32_combine_op...
    547  1.1  christos      D                 PR            10U 0 extproc('crc32_combine_op')          New Checksum
    548  1.1  christos      D  crc1                         10U 0 value                                Old checksum
    549  1.1  christos      D  crc2                         10U 0 value                                Old checksum
    550  1.1  christos      D  op                           10U 0 value                                Operator
    551  1.1  christos       *
    552  1.1  christos       **************************************************************************
    553  1.1  christos       *                     Miscellaneous function prototypes
    554  1.1  christos       **************************************************************************
    555  1.1  christos       *
    556  1.1  christos      D zError          PR              *   extproc('zError')                    Error string
    557  1.1  christos      D  err                          10I 0 value                                Error code
    558  1.1  christos       *
    559  1.1  christos      D inflateSyncPoint...
    560  1.1  christos      D                 PR            10I 0 extproc('inflateSyncPoint')
    561  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    562  1.1  christos       *
    563  1.1  christos      D get_crc_table   PR              *   extproc('get_crc_table')             Ptr to ulongs
    564  1.1  christos       *
    565  1.1  christos      D inflateUndermine...
    566  1.1  christos      D                 PR            10I 0 extproc('inflateUndermine')
    567  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    568  1.1  christos      D  arg                          10I 0 value                                Error code
    569  1.1  christos       *
    570  1.1  christos      D inflateResetKeep...
    571  1.1  christos      D                 PR            10I 0 extproc('inflateResetKeep')          End and init. stream
    572  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    573  1.1  christos       *
    574  1.1  christos      D deflateResetKeep...
    575  1.1  christos      D                 PR            10I 0 extproc('deflateResetKeep')          End and init. stream
    576  1.1  christos      D  strm                               like(z_stream)                       Expansion stream
    577  1.1  christos       *
    578  1.1  christos       /endif
    579