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