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