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