PageRenderTime 67ms CodeModel.GetById 11ms app.highlight 52ms RepoModel.GetById 1ms app.codeStats 0ms

/StormLib/stormlib/zlib/as400/zlib.inc

http://ghostcb.googlecode.com/
Pascal | 331 lines | 104 code | 0 blank | 227 comment | 0 complexity | b6939ef53a4f778f1896d46b3082d437 MD5 | raw file
  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