Merge branch 'origtgz'
[alioth/cvs.git] / zlib / as400 / zlib.inc
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