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