zlib.inc
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:20k
源码类别:

通讯编程

开发平台:

Visual C++

  1.       *  ZLIB.INC - Interface to the general purpose compression library
  2.       *
  3.       *  ILE RPG400 version by Patrick Monnerat, DATASPHERE.
  4.       *  Version 1.2.3
  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.2.3'
  26.      D ZLIB_VERNUM     C                   X'1230'
  27.       *
  28.       *  Other equates.
  29.       *
  30.      D Z_NO_FLUSH      C                   0
  31.      D Z_SYNC_FLUSH    C                   2
  32.      D Z_FULL_FLUSH    C                   3
  33.      D Z_FINISH        C                   4
  34.      D Z_BLOCK         C                   5
  35.       *
  36.      D Z_OK            C                   0
  37.      D Z_STREAM_END    C                   1
  38.      D Z_NEED_DICT     C                   2
  39.      D Z_ERRNO         C                   -1
  40.      D Z_STREAM_ERROR  C                   -2
  41.      D Z_DATA_ERROR    C                   -3
  42.      D Z_MEM_ERROR     C                   -4
  43.      D Z_BUF_ERROR     C                   -5
  44.      DZ_VERSION_ERROR  C                   -6
  45.       *
  46.      D Z_NO_COMPRESSION...
  47.      D                 C                   0
  48.      D Z_BEST_SPEED    C                   1
  49.      D Z_BEST_COMPRESSION...
  50.      D                 C                   9
  51.      D Z_DEFAULT_COMPRESSION...
  52.      D                 C                   -1
  53.       *
  54.      D Z_FILTERED      C                   1
  55.      D Z_HUFFMAN_ONLY  C                   2
  56.      D Z_RLE           C                   3
  57.      D Z_DEFAULT_STRATEGY...
  58.      D                 C                   0
  59.       *
  60.      D Z_BINARY        C                   0
  61.      D Z_ASCII         C                   1
  62.      D Z_UNKNOWN       C                   2
  63.       *
  64.      D Z_DEFLATED      C                   8
  65.       *
  66.      D Z_NULL          C                   0
  67.       *
  68.       **************************************************************************
  69.       *                                 Types
  70.       **************************************************************************
  71.       *
  72.      D z_streamp       S               *                                        Stream struct ptr
  73.      D gzFile          S               *                                        File pointer
  74.      D z_off_t         S             10i 0                                      Stream offsets
  75.       *
  76.       **************************************************************************
  77.       *                               Structures
  78.       **************************************************************************
  79.       *
  80.       *  The GZIP encode/decode stream support structure.
  81.       *
  82.      D z_stream        DS                  align based(z_streamp)
  83.      D  zs_next_in                     *                                        Next input byte
  84.      D  zs_avail_in                  10U 0                                      Byte cnt at next_in
  85.      D  zs_total_in                  10U 0                                      Total bytes read
  86.      D  zs_next_out                    *                                        Output buffer ptr
  87.      D  zs_avail_out                 10U 0                                      Room left @ next_out
  88.      D  zs_total_out                 10U 0                                      Total bytes written
  89.      D  zs_msg                         *                                        Last errmsg or null
  90.      D  zs_state                       *                                        Internal state
  91.      D  zs_zalloc                      *   procptr                              Int. state allocator
  92.      D  zs_free                        *   procptr                              Int. state dealloc.
  93.      D  zs_opaque                      *                                        Private alloc. data
  94.      D  zs_data_type                 10i 0                                      ASC/BIN best guess
  95.      D  zs_adler                     10u 0                                      Uncompr. adler32 val
  96.      D                               10U 0                                      Reserved
  97.      D                               10U 0                                      Ptr. alignment
  98.       *
  99.       **************************************************************************
  100.       *                     Utility function prototypes
  101.       **************************************************************************
  102.       *
  103.      D compress        PR            10I 0 extproc('compress')
  104.      D  dest                      32767    options(*varsize)                    Destination buffer
  105.      D  destLen                      10U 0                                      Destination length
  106.      D  source                    32767    const options(*varsize)              Source buffer
  107.      D  sourceLen                    10u 0 value                                Source length
  108.       *
  109.      D compress2       PR            10I 0 extproc('compress2')
  110.      D  dest                      32767    options(*varsize)                    Destination buffer
  111.      D  destLen                      10U 0                                      Destination length
  112.      D  source                    32767    const options(*varsize)              Source buffer
  113.      D  sourceLen                    10U 0 value                                Source length
  114.      D  level                        10I 0 value                                Compression level
  115.       *
  116.      D compressBound   PR            10U 0 extproc('compressBound')
  117.      D  sourceLen                    10U 0 value
  118.       *
  119.      D uncompress      PR            10I 0 extproc('uncompress')
  120.      D  dest                      32767    options(*varsize)                    Destination buffer
  121.      D  destLen                      10U 0                                      Destination length
  122.      D  source                    32767    const options(*varsize)              Source buffer
  123.      D  sourceLen                    10U 0 value                                Source length
  124.       *
  125.      D gzopen          PR                  extproc('gzopen')
  126.      D                                     like(gzFile)
  127.      D  path                           *   value options(*string)               File pathname
  128.      D  mode                           *   value options(*string)               Open mode
  129.       *
  130.      D gzdopen         PR                  extproc('gzdopen')
  131.      D                                     like(gzFile)
  132.      D  fd                           10i 0 value                                File descriptor
  133.      D  mode                           *   value options(*string)               Open mode
  134.       *
  135.      D gzsetparams     PR            10I 0 extproc('gzsetparams')
  136.      D  file                               value like(gzFile)                   File pointer
  137.      D  level                        10I 0 value
  138.      D  strategy                     10i 0 value
  139.       *
  140.      D gzread          PR            10I 0 extproc('gzread')
  141.      D  file                               value like(gzFile)                   File pointer
  142.      D  buf                       32767    options(*varsize)                    Buffer
  143.      D  len                          10u 0 value                                Buffer length
  144.       *
  145.      D gzwrite         PR            10I 0 extproc('gzwrite')
  146.      D  file                               value like(gzFile)                   File pointer
  147.      D  buf                       32767    const options(*varsize)              Buffer
  148.      D  len                          10u 0 value                                Buffer length
  149.       *
  150.      D gzputs          PR            10I 0 extproc('gzputs')
  151.      D  file                               value like(gzFile)                   File pointer
  152.      D  s                              *   value options(*string)               String to output
  153.       *
  154.      D gzgets          PR              *   extproc('gzgets')
  155.      D  file                               value like(gzFile)                   File pointer
  156.      D  buf                       32767    options(*varsize)                    Read buffer
  157.      D  len                          10i 0 value                                Buffer length
  158.       *
  159.      D gzflush         PR            10i 0 extproc('gzflush')
  160.      D  file                               value like(gzFile)                   File pointer
  161.      D  flush                        10I 0 value                                Type of flush
  162.       *
  163.      D gzseek          PR                  extproc('gzseek')
  164.      D                                     like(z_off_t)
  165.      D  file                               value like(gzFile)                   File pointer
  166.      D  offset                             value like(z_off_t)                  Offset
  167.      D  whence                       10i 0 value                                Origin
  168.       *
  169.      D gzrewind        PR            10i 0 extproc('gzrewind')
  170.      D  file                               value like(gzFile)                   File pointer
  171.       *
  172.      D gztell          PR                  extproc('gztell')
  173.      D                                     like(z_off_t)
  174.      D  file                               value like(gzFile)                   File pointer
  175.       *
  176.      D gzeof           PR            10i 0 extproc('gzeof')
  177.      D  file                               value like(gzFile)                   File pointer
  178.       *
  179.      D gzclose         PR            10i 0 extproc('gzclose')
  180.      D  file                               value like(gzFile)                   File pointer
  181.       *
  182.      D gzerror         PR              *   extproc('gzerror')                   Error string
  183.      D  file                               value like(gzFile)                   File pointer
  184.      D  errnum                       10I 0                                      Error code
  185.       *
  186.      D gzclearerr      PR                  extproc('gzclearerr')
  187.      D  file                               value like(gzFile)                   File pointer
  188.       *
  189.       **************************************************************************
  190.       *                        Basic function prototypes
  191.       **************************************************************************
  192.       *
  193.      D zlibVersion     PR              *   extproc('zlibVersion')               Version string
  194.       *
  195.      D deflateInit     PR            10I 0 extproc('deflateInit_')              Init. compression
  196.      D  strm                               like(z_stream)                       Compression stream
  197.      D  level                        10I 0 value                                Compression level
  198.      D  version                        *   value options(*string)               Version string
  199.      D  stream_size                  10i 0 value                                Stream struct. size
  200.       *
  201.      D deflate         PR            10I 0 extproc('deflate')                   Compress data
  202.      D  strm                               like(z_stream)                       Compression stream
  203.      D  flush                        10I 0 value                                Flush type required
  204.       *
  205.      D deflateEnd      PR            10I 0 extproc('deflateEnd')                Termin. compression
  206.      D  strm                               like(z_stream)                       Compression stream
  207.       *
  208.      D inflateInit     PR            10I 0 extproc('inflateInit_')              Init. expansion
  209.      D  strm                               like(z_stream)                       Expansion stream
  210.      D  version                        *   value options(*string)               Version string
  211.      D  stream_size                  10i 0 value                                Stream struct. size
  212.       *
  213.      D inflate         PR            10I 0 extproc('inflate')                   Expand data
  214.      D  strm                               like(z_stream)                       Expansion stream
  215.      D  flush                        10I 0 value                                Flush type required
  216.       *
  217.      D inflateEnd      PR            10I 0 extproc('inflateEnd')                Termin. expansion
  218.      D  strm                               like(z_stream)                       Expansion stream
  219.       *
  220.       **************************************************************************
  221.       *                        Advanced function prototypes
  222.       **************************************************************************
  223.       *
  224.      D deflateInit2    PR            10I 0 extproc('deflateInit2_')             Init. compression
  225.      D  strm                               like(z_stream)                       Compression stream
  226.      D  level                        10I 0 value                                Compression level
  227.      D  method                       10I 0 value                                Compression method
  228.      D  windowBits                   10I 0 value                                log2(window size)
  229.      D  memLevel                     10I 0 value                                Mem/cmpress tradeoff
  230.      D  strategy                     10I 0 value                                Compression stategy
  231.      D  version                        *   value options(*string)               Version string
  232.      D  stream_size                  10i 0 value                                Stream struct. size
  233.       *
  234.      D deflateSetDictionary...
  235.      D                 PR            10I 0 extproc('deflateSetDictionary')      Init. dictionary
  236.      D  strm                               like(z_stream)                       Compression stream
  237.      D  dictionary                32767    const options(*varsize)              Dictionary bytes
  238.      D  dictLength                   10U 0 value                                Dictionary length
  239.       *
  240.      D deflateCopy     PR            10I 0 extproc('deflateCopy')               Compress strm 2 strm
  241.      D  dest                               like(z_stream)                       Destination stream
  242.      D  source                             like(z_stream)                       Source stream
  243.       *
  244.      D deflateReset    PR            10I 0 extproc('deflateReset')              End and init. stream
  245.      D  strm                               like(z_stream)                       Compression stream
  246.       *
  247.      D deflateParams   PR            10I 0 extproc('deflateParams')             Change level & strat
  248.      D  strm                               like(z_stream)                       Compression stream
  249.      D  level                        10I 0 value                                Compression level
  250.      D  strategy                     10I 0 value                                Compression stategy
  251.       *
  252.      D deflateBound    PR            10U 0 extproc('deflateBound')              Change level & strat
  253.      D  strm                               like(z_stream)                       Compression stream
  254.      D  sourcelen                    10U 0 value                                Compression level
  255.       *
  256.      D deflatePrime    PR            10I 0 extproc('deflatePrime')              Change level & strat
  257.      D  strm                               like(z_stream)                       Compression stream
  258.      D  bits                         10I 0 value                                Number of bits to insert
  259.      D  value                        10I 0 value                                Bits to insert
  260.       *
  261.      D inflateInit2    PR            10I 0 extproc('inflateInit2_')             Init. expansion
  262.      D  strm                               like(z_stream)                       Expansion stream
  263.      D  windowBits                   10I 0 value                                log2(window size)
  264.      D  version                        *   value options(*string)               Version string
  265.      D  stream_size                  10i 0 value                                Stream struct. size
  266.       *
  267.      D inflateSetDictionary...
  268.      D                 PR            10I 0 extproc('inflateSetDictionary')      Init. dictionary
  269.      D  strm                               like(z_stream)                       Expansion stream
  270.      D  dictionary                32767    const options(*varsize)              Dictionary bytes
  271.      D  dictLength                   10U 0 value                                Dictionary length
  272.       *
  273.      D inflateSync     PR            10I 0 extproc('inflateSync')               Sync. expansion
  274.      D  strm                               like(z_stream)                       Expansion stream
  275.       *
  276.      D inflateCopy     PR            10I 0 extproc('inflateCopy')
  277.      D  dest                               like(z_stream)                       Destination stream
  278.      D  source                             like(z_stream)                       Source stream
  279.       *
  280.      D inflateReset    PR            10I 0 extproc('inflateReset')              End and init. stream
  281.      D  strm                               like(z_stream)                       Expansion stream
  282.       *
  283.      D inflateBackInit...
  284.      D                 PR            10I 0 extproc('inflateBackInit_')
  285.      D  strm                               like(z_stream)                       Expansion stream
  286.      D  windowBits                   10I 0 value                                Log2(buffer size)
  287.      D  window                    32767    options(*varsize)                    Buffer
  288.      D  version                        *   value options(*string)               Version string
  289.      D  stream_size                  10i 0 value                                Stream struct. size
  290.       *
  291.      D inflateBack     PR            10I 0 extproc('inflateBack')
  292.      D  strm                               like(z_stream)                       Expansion stream
  293.      D  in                             *   value procptr                        Input function
  294.      D  in_desc                        *   value                                Input descriptor
  295.      D  out                            *   value procptr                        Output function
  296.      D  out_desc                       *   value                                Output descriptor
  297.       *
  298.      D inflateBackEnd  PR            10I 0 extproc('inflateBackEnd')
  299.      D  strm                               like(z_stream)                       Expansion stream
  300.       *
  301.      D zlibCompileFlags...
  302.      D                 PR            10U 0 extproc('zlibCompileFlags')
  303.       *
  304.       **************************************************************************
  305.       *                        Checksum function prototypes
  306.       **************************************************************************
  307.       *
  308.      D adler32         PR            10U 0 extproc('adler32')                   New checksum
  309.      D  adler                        10U 0 value                                Old checksum
  310.      D  buf                       32767    const options(*varsize)              Bytes to accumulate
  311.      D  len                          10U 0 value                                Buffer length
  312.       *
  313.      D crc32           PR            10U 0 extproc('crc32')                     New checksum
  314.      D  crc                          10U 0 value                                Old checksum
  315.      D  buf                       32767    const options(*varsize)              Bytes to accumulate
  316.      D  len                          10U 0 value                                Buffer length
  317.       *
  318.       **************************************************************************
  319.       *                     Miscellaneous function prototypes
  320.       **************************************************************************
  321.       *
  322.      D zError          PR              *   extproc('zError')                    Error string
  323.      D  err                          10I 0 value                                Error code
  324.       *
  325.      D inflateSyncPoint...
  326.      D                 PR            10I 0 extproc('inflateSyncPoint')
  327.      D  strm                               like(z_stream)                       Expansion stream
  328.       *
  329.      D get_crc_table   PR              *   extproc('get_crc_table')             Ptr to ulongs
  330.       *
  331.       /endif