1 |
* ZLIB.INC - Interface to the general purpose compression library |
2 |
* |
3 |
* ILE RPG400 version by Patrick Monnerat, DATASPHERE. |
4 |
* Version 1.2.8 |
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.8' |
26 |
D ZLIB_VERNUM C X'1280' |
27 |
D ZLIB_VER_MAJOR C 1 |
28 |
D ZLIB_VER_MINOR C 2 |
29 |
D ZLIB_VER_REVISION... |
30 |
D C 8 |
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 |
DZ_VERSION_ERROR C -6 |
54 |
* |
55 |
D Z_NO_COMPRESSION... |
56 |
D C 0 |
57 |
D Z_BEST_SPEED C 1 |
58 |
D Z_BEST_COMPRESSION... |
59 |
D C 9 |
60 |
D Z_DEFAULT_COMPRESSION... |
61 |
D C -1 |
62 |
* |
63 |
D Z_FILTERED C 1 |
64 |
D Z_HUFFMAN_ONLY C 2 |
65 |
D Z_RLE C 3 |
66 |
D Z_DEFAULT_STRATEGY... |
67 |
D C 0 |
68 |
* |
69 |
D Z_BINARY C 0 |
70 |
D Z_ASCII C 1 |
71 |
D Z_UNKNOWN C 2 |
72 |
* |
73 |
D Z_DEFLATED C 8 |
74 |
* |
75 |
D Z_NULL C 0 |
76 |
* |
77 |
************************************************************************** |
78 |
* Types |
79 |
************************************************************************** |
80 |
* |
81 |
D z_streamp S * Stream struct ptr |
82 |
D gzFile S * File pointer |
83 |
D z_off_t S 10i 0 Stream offsets |
84 |
D z_off64_t S 20i 0 Stream offsets |
85 |
* |
86 |
************************************************************************** |
87 |
* Structures |
88 |
************************************************************************** |
89 |
* |
90 |
* The GZIP encode/decode stream support structure. |
91 |
* |
92 |
D z_stream DS align based(z_streamp) |
93 |
D zs_next_in * Next input byte |
94 |
D zs_avail_in 10U 0 Byte cnt at next_in |
95 |
D zs_total_in 10U 0 Total bytes read |
96 |
D zs_next_out * Output buffer ptr |
97 |
D zs_avail_out 10U 0 Room left @ next_out |
98 |
D zs_total_out 10U 0 Total bytes written |
99 |
D zs_msg * Last errmsg or null |
100 |
D zs_state * Internal state |
101 |
D zs_zalloc * procptr Int. state allocator |
102 |
D zs_free * procptr Int. state dealloc. |
103 |
D zs_opaque * Private alloc. data |
104 |
D zs_data_type 10i 0 ASC/BIN best guess |
105 |
D zs_adler 10u 0 Uncompr. adler32 val |
106 |
D 10U 0 Reserved |
107 |
D 10U 0 Ptr. alignment |
108 |
* |
109 |
************************************************************************** |
110 |
* Utility function prototypes |
111 |
************************************************************************** |
112 |
* |
113 |
D compress PR 10I 0 extproc('compress') |
114 |
D dest 65535 options(*varsize) Destination buffer |
115 |
D destLen 10U 0 Destination length |
116 |
D source 65535 const options(*varsize) Source buffer |
117 |
D sourceLen 10u 0 value Source length |
118 |
* |
119 |
D compress2 PR 10I 0 extproc('compress2') |
120 |
D dest 65535 options(*varsize) Destination buffer |
121 |
D destLen 10U 0 Destination length |
122 |
D source 65535 const options(*varsize) Source buffer |
123 |
D sourceLen 10U 0 value Source length |
124 |
D level 10I 0 value Compression level |
125 |
* |
126 |
D compressBound PR 10U 0 extproc('compressBound') |
127 |
D sourceLen 10U 0 value |
128 |
* |
129 |
D uncompress PR 10I 0 extproc('uncompress') |
130 |
D dest 65535 options(*varsize) Destination buffer |
131 |
D destLen 10U 0 Destination length |
132 |
D source 65535 const options(*varsize) Source buffer |
133 |
D sourceLen 10U 0 value Source length |
134 |
* |
135 |
/if not defined(LARGE_FILES) |
136 |
D gzopen PR extproc('gzopen') |
137 |
D like(gzFile) |
138 |
D path * value options(*string) File pathname |
139 |
D mode * value options(*string) Open mode |
140 |
/else |
141 |
D gzopen PR extproc('gzopen64') |
142 |
D like(gzFile) |
143 |
D path * value options(*string) File pathname |
144 |
D mode * value options(*string) Open mode |
145 |
* |
146 |
D gzopen64 PR extproc('gzopen64') |
147 |
D like(gzFile) |
148 |
D path * value options(*string) File pathname |
149 |
D mode * value options(*string) Open mode |
150 |
/endif |
151 |
* |
152 |
D gzdopen PR extproc('gzdopen') |
153 |
D like(gzFile) |
154 |
D fd 10I 0 value File descriptor |
155 |
D mode * value options(*string) Open mode |
156 |
* |
157 |
D gzbuffer PR 10I 0 extproc('gzbuffer') |
158 |
D file value like(gzFile) File pointer |
159 |
D size 10U 0 value |
160 |
* |
161 |
D gzsetparams PR 10I 0 extproc('gzsetparams') |
162 |
D file value like(gzFile) File pointer |
163 |
D level 10I 0 value |
164 |
D strategy 10I 0 value |
165 |
* |
166 |
D gzread PR 10I 0 extproc('gzread') |
167 |
D file value like(gzFile) File pointer |
168 |
D buf 65535 options(*varsize) Buffer |
169 |
D len 10u 0 value Buffer length |
170 |
* |
171 |
D gzwrite PR 10I 0 extproc('gzwrite') |
172 |
D file value like(gzFile) File pointer |
173 |
D buf 65535 const options(*varsize) Buffer |
174 |
D len 10u 0 value Buffer length |
175 |
* |
176 |
D gzputs PR 10I 0 extproc('gzputs') |
177 |
D file value like(gzFile) File pointer |
178 |
D s * value options(*string) String to output |
179 |
* |
180 |
D gzgets PR * extproc('gzgets') |
181 |
D file value like(gzFile) File pointer |
182 |
D buf 65535 options(*varsize) Read buffer |
183 |
D len 10i 0 value Buffer length |
184 |
* |
185 |
D gzputc PR 10i 0 extproc('gzputc') |
186 |
D file value like(gzFile) File pointer |
187 |
D c 10I 0 value Character to write |
188 |
* |
189 |
D gzgetc PR 10i 0 extproc('gzgetc') |
190 |
D file value like(gzFile) File pointer |
191 |
* |
192 |
D gzgetc_ PR 10i 0 extproc('gzgetc_') |
193 |
D file value like(gzFile) File pointer |
194 |
* |
195 |
D gzungetc PR 10i 0 extproc('gzungetc') |
196 |
D c 10I 0 value Character to push |
197 |
D file value like(gzFile) File pointer |
198 |
* |
199 |
D gzflush PR 10i 0 extproc('gzflush') |
200 |
D file value like(gzFile) File pointer |
201 |
D flush 10I 0 value Type of flush |
202 |
* |
203 |
/if not defined(LARGE_FILES) |
204 |
D gzseek PR extproc('gzseek') |
205 |
D like(z_off_t) |
206 |
D file value like(gzFile) File pointer |
207 |
D offset value like(z_off_t) Offset |
208 |
D whence 10i 0 value Origin |
209 |
/else |
210 |
D gzseek PR extproc('gzseek64') |
211 |
D like(z_off_t) |
212 |
D file value like(gzFile) File pointer |
213 |
D offset value like(z_off_t) Offset |
214 |
D whence 10i 0 value Origin |
215 |
* |
216 |
D gzseek64 PR extproc('gzseek64') |
217 |
D like(z_off64_t) |
218 |
D file value like(gzFile) File pointer |
219 |
D offset value like(z_off64_t) Offset |
220 |
D whence 10i 0 value Origin |
221 |
/endif |
222 |
* |
223 |
D gzrewind PR 10i 0 extproc('gzrewind') |
224 |
D file value like(gzFile) File pointer |
225 |
* |
226 |
/if not defined(LARGE_FILES) |
227 |
D gztell PR extproc('gztell') |
228 |
D like(z_off_t) |
229 |
D file value like(gzFile) File pointer |
230 |
/else |
231 |
D gztell PR extproc('gztell64') |
232 |
D like(z_off_t) |
233 |
D file value like(gzFile) File pointer |
234 |
* |
235 |
D gztell64 PR extproc('gztell64') |
236 |
D like(z_off64_t) |
237 |
D file value like(gzFile) File pointer |
238 |
/endif |
239 |
* |
240 |
/if not defined(LARGE_FILES) |
241 |
D gzoffset PR extproc('gzoffset') |
242 |
D like(z_off_t) |
243 |
D file value like(gzFile) File pointer |
244 |
/else |
245 |
D gzoffset PR extproc('gzoffset64') |
246 |
D like(z_off_t) |
247 |
D file value like(gzFile) File pointer |
248 |
* |
249 |
D gzoffset64 PR extproc('gzoffset64') |
250 |
D like(z_off64_t) |
251 |
D file value like(gzFile) File pointer |
252 |
/endif |
253 |
* |
254 |
D gzeof PR 10i 0 extproc('gzeof') |
255 |
D file value like(gzFile) File pointer |
256 |
* |
257 |
D gzclose_r PR 10i 0 extproc('gzclose_r') |
258 |
D file value like(gzFile) File pointer |
259 |
* |
260 |
D gzclose_w PR 10i 0 extproc('gzclose_w') |
261 |
D file value like(gzFile) File pointer |
262 |
* |
263 |
D gzclose PR 10i 0 extproc('gzclose') |
264 |
D file value like(gzFile) File pointer |
265 |
* |
266 |
D gzerror PR * extproc('gzerror') Error string |
267 |
D file value like(gzFile) File pointer |
268 |
D errnum 10I 0 Error code |
269 |
* |
270 |
D gzclearerr PR extproc('gzclearerr') |
271 |
D file value like(gzFile) File pointer |
272 |
* |
273 |
************************************************************************** |
274 |
* Basic function prototypes |
275 |
************************************************************************** |
276 |
* |
277 |
D zlibVersion PR * extproc('zlibVersion') Version string |
278 |
* |
279 |
D deflateInit PR 10I 0 extproc('deflateInit_') Init. compression |
280 |
D strm like(z_stream) Compression stream |
281 |
D level 10I 0 value Compression level |
282 |
D version * value options(*string) Version string |
283 |
D stream_size 10i 0 value Stream struct. size |
284 |
* |
285 |
D deflate PR 10I 0 extproc('deflate') Compress data |
286 |
D strm like(z_stream) Compression stream |
287 |
D flush 10I 0 value Flush type required |
288 |
* |
289 |
D deflateEnd PR 10I 0 extproc('deflateEnd') Termin. compression |
290 |
D strm like(z_stream) Compression stream |
291 |
* |
292 |
D inflateInit PR 10I 0 extproc('inflateInit_') Init. expansion |
293 |
D strm like(z_stream) Expansion stream |
294 |
D version * value options(*string) Version string |
295 |
D stream_size 10i 0 value Stream struct. size |
296 |
* |
297 |
D inflate PR 10I 0 extproc('inflate') Expand data |
298 |
D strm like(z_stream) Expansion stream |
299 |
D flush 10I 0 value Flush type required |
300 |
* |
301 |
D inflateEnd PR 10I 0 extproc('inflateEnd') Termin. expansion |
302 |
D strm like(z_stream) Expansion stream |
303 |
* |
304 |
************************************************************************** |
305 |
* Advanced function prototypes |
306 |
************************************************************************** |
307 |
* |
308 |
D deflateInit2 PR 10I 0 extproc('deflateInit2_') Init. compression |
309 |
D strm like(z_stream) Compression stream |
310 |
D level 10I 0 value Compression level |
311 |
D method 10I 0 value Compression method |
312 |
D windowBits 10I 0 value log2(window size) |
313 |
D memLevel 10I 0 value Mem/cmpress tradeoff |
314 |
D strategy 10I 0 value Compression stategy |
315 |
D version * value options(*string) Version string |
316 |
D stream_size 10i 0 value Stream struct. size |
317 |
* |
318 |
D deflateSetDictionary... |
319 |
D PR 10I 0 extproc('deflateSetDictionary') Init. dictionary |
320 |
D strm like(z_stream) Compression stream |
321 |
D dictionary 65535 const options(*varsize) Dictionary bytes |
322 |
D dictLength 10U 0 value Dictionary length |
323 |
* |
324 |
D deflateCopy PR 10I 0 extproc('deflateCopy') Compress strm 2 strm |
325 |
D dest like(z_stream) Destination stream |
326 |
D source like(z_stream) Source stream |
327 |
* |
328 |
D deflateReset PR 10I 0 extproc('deflateReset') End and init. stream |
329 |
D strm like(z_stream) Compression stream |
330 |
* |
331 |
D deflateParams PR 10I 0 extproc('deflateParams') Change level & strat |
332 |
D strm like(z_stream) Compression stream |
333 |
D level 10I 0 value Compression level |
334 |
D strategy 10I 0 value Compression stategy |
335 |
* |
336 |
D deflateBound PR 10U 0 extproc('deflateBound') Change level & strat |
337 |
D strm like(z_stream) Compression stream |
338 |
D sourcelen 10U 0 value Compression level |
339 |
* |
340 |
D deflatePending PR 10I 0 extproc('deflatePending') Change level & strat |
341 |
D strm like(z_stream) Compression stream |
342 |
D pending 10U 0 Pending bytes |
343 |
D bits 10I 0 Pending bits |
344 |
* |
345 |
D deflatePrime PR 10I 0 extproc('deflatePrime') Change level & strat |
346 |
D strm like(z_stream) Compression stream |
347 |
D bits 10I 0 value # of bits to insert |
348 |
D value 10I 0 value Bits to insert |
349 |
* |
350 |
D inflateInit2 PR 10I 0 extproc('inflateInit2_') Init. expansion |
351 |
D strm like(z_stream) Expansion stream |
352 |
D windowBits 10I 0 value log2(window size) |
353 |
D version * value options(*string) Version string |
354 |
D stream_size 10i 0 value Stream struct. size |
355 |
* |
356 |
D inflateSetDictionary... |
357 |
D PR 10I 0 extproc('inflateSetDictionary') Init. dictionary |
358 |
D strm like(z_stream) Expansion stream |
359 |
D dictionary 65535 const options(*varsize) Dictionary bytes |
360 |
D dictLength 10U 0 value Dictionary length |
361 |
* |
362 |
D inflateGetDictionary... |
363 |
D PR 10I 0 extproc('inflateGetDictionary') Get dictionary |
364 |
D strm like(z_stream) Expansion stream |
365 |
D dictionary 65535 options(*varsize) Dictionary bytes |
366 |
D dictLength 10U 0 Dictionary length |
367 |
* |
368 |
D inflateSync PR 10I 0 extproc('inflateSync') Sync. expansion |
369 |
D strm like(z_stream) Expansion stream |
370 |
* |
371 |
D inflateCopy PR 10I 0 extproc('inflateCopy') |
372 |
D dest like(z_stream) Destination stream |
373 |
D source like(z_stream) Source stream |
374 |
* |
375 |
D inflateReset PR 10I 0 extproc('inflateReset') End and init. stream |
376 |
D strm like(z_stream) Expansion stream |
377 |
* |
378 |
D inflateReset2 PR 10I 0 extproc('inflateReset2') End and init. stream |
379 |
D strm like(z_stream) Expansion stream |
380 |
D windowBits 10I 0 value Log2(buffer size) |
381 |
* |
382 |
D inflatePrime PR 10I 0 extproc('inflatePrime') Insert bits |
383 |
D strm like(z_stream) Expansion stream |
384 |
D bits 10I 0 value Bit count |
385 |
D value 10I 0 value Bits to insert |
386 |
* |
387 |
D inflateMark PR 10I 0 extproc('inflateMark') Get inflate info |
388 |
D strm like(z_stream) Expansion stream |
389 |
* |
390 |
D inflateBackInit... |
391 |
D PR 10I 0 extproc('inflateBackInit_') |
392 |
D strm like(z_stream) Expansion stream |
393 |
D windowBits 10I 0 value Log2(buffer size) |
394 |
D window 65535 options(*varsize) Buffer |
395 |
D version * value options(*string) Version string |
396 |
D stream_size 10i 0 value Stream struct. size |
397 |
* |
398 |
D inflateBack PR 10I 0 extproc('inflateBack') |
399 |
D strm like(z_stream) Expansion stream |
400 |
D in * value procptr Input function |
401 |
D in_desc * value Input descriptor |
402 |
D out * value procptr Output function |
403 |
D out_desc * value Output descriptor |
404 |
* |
405 |
D inflateBackEnd PR 10I 0 extproc('inflateBackEnd') |
406 |
D strm like(z_stream) Expansion stream |
407 |
* |
408 |
D zlibCompileFlags... |
409 |
D PR 10U 0 extproc('zlibCompileFlags') |
410 |
* |
411 |
************************************************************************** |
412 |
* Checksum function prototypes |
413 |
************************************************************************** |
414 |
* |
415 |
D adler32 PR 10U 0 extproc('adler32') New checksum |
416 |
D adler 10U 0 value Old checksum |
417 |
D buf 65535 const options(*varsize) Bytes to accumulate |
418 |
D len 10U 0 value Buffer length |
419 |
* |
420 |
D crc32 PR 10U 0 extproc('crc32') New checksum |
421 |
D crc 10U 0 value Old checksum |
422 |
D buf 65535 const options(*varsize) Bytes to accumulate |
423 |
D len 10U 0 value Buffer length |
424 |
* |
425 |
************************************************************************** |
426 |
* Miscellaneous function prototypes |
427 |
************************************************************************** |
428 |
* |
429 |
D zError PR * extproc('zError') Error string |
430 |
D err 10I 0 value Error code |
431 |
* |
432 |
D inflateSyncPoint... |
433 |
D PR 10I 0 extproc('inflateSyncPoint') |
434 |
D strm like(z_stream) Expansion stream |
435 |
* |
436 |
D get_crc_table PR * extproc('get_crc_table') Ptr to ulongs |
437 |
* |
438 |
D inflateUndermine... |
439 |
D PR 10I 0 extproc('inflateUndermine') |
440 |
D strm like(z_stream) Expansion stream |
441 |
D arg 10I 0 value Error code |
442 |
* |
443 |
D inflateResetKeep... |
444 |
D PR 10I 0 extproc('inflateResetKeep') End and init. stream |
445 |
D strm like(z_stream) Expansion stream |
446 |
* |
447 |
D deflateResetKeep... |
448 |
D PR 10I 0 extproc('deflateResetKeep') End and init. stream |
449 |
D strm like(z_stream) Expansion stream |
450 |
* |
451 |
/endif |