1 * ZLIB.INC - Interface to the general purpose compression library
3 * ILE RPG400 version by Patrick Monnerat, DATASPHERE.
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))
16 /if not defined(ZLIB_H_)
19 **************************************************************************
21 **************************************************************************
23 * Versioning information.
25 D ZLIB_VERSION C '1.2.5.3'
26 D ZLIB_VERNUM C X'1253'
29 D ZLIB_VER_REVISION...
31 D ZLIB_VER_SUBREVISION...
58 D Z_BEST_COMPRESSION...
60 D Z_DEFAULT_COMPRESSION...
66 D Z_DEFAULT_STRATEGY...
77 **************************************************************************
79 **************************************************************************
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
86 **************************************************************************
88 **************************************************************************
90 * The GZIP encode/decode stream support structure.
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
107 D 10U 0 Ptr. alignment
109 **************************************************************************
110 * Utility function prototypes
111 **************************************************************************
113 D compress PR 10I 0 extproc('compress')
114 D dest 32767 options(*varsize) Destination buffer
115 D destLen 10U 0 Destination length
116 D source 32767 const options(*varsize) Source buffer
117 D sourceLen 10u 0 value Source length
119 D compress2 PR 10I 0 extproc('compress2')
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 D level 10I 0 value Compression level
126 D compressBound PR 10U 0 extproc('compressBound')
127 D sourceLen 10U 0 value
129 D uncompress PR 10I 0 extproc('uncompress')
130 D dest 32767 options(*varsize) Destination buffer
131 D destLen 10U 0 Destination length
132 D source 32767 const options(*varsize) Source buffer
133 D sourceLen 10U 0 value Source length
135 /if not defined(LARGE_FILES)
136 D gzopen PR extproc('gzopen')
138 D path * value options(*string) File pathname
139 D mode * value options(*string) Open mode
141 D gzopen PR extproc('gzopen64')
143 D path * value options(*string) File pathname
144 D mode * value options(*string) Open mode
146 D gzopen64 PR extproc('gzopen64')
148 D path * value options(*string) File pathname
149 D mode * value options(*string) Open mode
152 D gzdopen PR extproc('gzdopen')
154 D fd 10I 0 value File descriptor
155 D mode * value options(*string) Open mode
157 D gzbuffer PR 10I 0 extproc('gzbuffer')
158 D file value like(gzFile) File pointer
161 D gzsetparams PR 10I 0 extproc('gzsetparams')
162 D file value like(gzFile) File pointer
164 D strategy 10I 0 value
166 D gzread PR 10I 0 extproc('gzread')
167 D file value like(gzFile) File pointer
168 D buf 32767 options(*varsize) Buffer
169 D len 10u 0 value Buffer length
171 D gzwrite PR 10I 0 extproc('gzwrite')
172 D file value like(gzFile) File pointer
173 D buf 32767 const options(*varsize) Buffer
174 D len 10u 0 value Buffer length
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
180 D gzgets PR * extproc('gzgets')
181 D file value like(gzFile) File pointer
182 D buf 32767 options(*varsize) Read buffer
183 D len 10i 0 value Buffer length
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
189 D gzgetc_ PR 10i 0 extproc('gzgetc_')
190 D file value like(gzFile) File pointer
192 D gzungetc PR 10i 0 extproc('gzungetc')
193 D c 10I 0 value Character to push
194 D file value like(gzFile) File pointer
196 D gzflush PR 10i 0 extproc('gzflush')
197 D file value like(gzFile) File pointer
198 D flush 10I 0 value Type of flush
200 /if not defined(LARGE_FILES)
201 D gzseek PR extproc('gzseek')
203 D file value like(gzFile) File pointer
204 D offset value like(z_off_t) Offset
205 D whence 10i 0 value Origin
207 D gzseek PR extproc('gzseek64')
209 D file value like(gzFile) File pointer
210 D offset value like(z_off_t) Offset
211 D whence 10i 0 value Origin
213 D gzseek64 PR extproc('gzseek64')
215 D file value like(gzFile) File pointer
216 D offset value like(z_off64_t) Offset
217 D whence 10i 0 value Origin
220 D gzrewind PR 10i 0 extproc('gzrewind')
221 D file value like(gzFile) File pointer
223 /if not defined(LARGE_FILES)
224 D gztell PR extproc('gztell')
226 D file value like(gzFile) File pointer
228 D gztell PR extproc('gztell64')
230 D file value like(gzFile) File pointer
232 D gztell64 PR extproc('gztell64')
234 D file value like(gzFile) File pointer
237 /if not defined(LARGE_FILES)
238 D gzoffset PR extproc('gzoffset')
240 D file value like(gzFile) File pointer
242 D gzoffset PR extproc('gzoffset64')
244 D file value like(gzFile) File pointer
246 D gzoffset64 PR extproc('gzoffset64')
248 D file value like(gzFile) File pointer
251 D gzeof PR 10i 0 extproc('gzeof')
252 D file value like(gzFile) File pointer
254 D gzclose_r PR 10i 0 extproc('gzclose_r')
255 D file value like(gzFile) File pointer
257 D gzclose_w PR 10i 0 extproc('gzclose_w')
258 D file value like(gzFile) File pointer
260 D gzclose PR 10i 0 extproc('gzclose')
261 D file value like(gzFile) File pointer
263 D gzerror PR * extproc('gzerror') Error string
264 D file value like(gzFile) File pointer
265 D errnum 10I 0 Error code
267 D gzclearerr PR extproc('gzclearerr')
268 D file value like(gzFile) File pointer
270 **************************************************************************
271 * Basic function prototypes
272 **************************************************************************
274 D zlibVersion PR * extproc('zlibVersion') Version string
276 D deflateInit PR 10I 0 extproc('deflateInit_') Init. compression
277 D strm like(z_stream) Compression stream
278 D level 10I 0 value Compression level
279 D version * value options(*string) Version string
280 D stream_size 10i 0 value Stream struct. size
282 D deflate PR 10I 0 extproc('deflate') Compress data
283 D strm like(z_stream) Compression stream
284 D flush 10I 0 value Flush type required
286 D deflateEnd PR 10I 0 extproc('deflateEnd') Termin. compression
287 D strm like(z_stream) Compression stream
289 D inflateInit PR 10I 0 extproc('inflateInit_') Init. expansion
290 D strm like(z_stream) Expansion stream
291 D version * value options(*string) Version string
292 D stream_size 10i 0 value Stream struct. size
294 D inflate PR 10I 0 extproc('inflate') Expand data
295 D strm like(z_stream) Expansion stream
296 D flush 10I 0 value Flush type required
298 D inflateEnd PR 10I 0 extproc('inflateEnd') Termin. expansion
299 D strm like(z_stream) Expansion stream
301 **************************************************************************
302 * Advanced function prototypes
303 **************************************************************************
305 D deflateInit2 PR 10I 0 extproc('deflateInit2_') Init. compression
306 D strm like(z_stream) Compression stream
307 D level 10I 0 value Compression level
308 D method 10I 0 value Compression method
309 D windowBits 10I 0 value log2(window size)
310 D memLevel 10I 0 value Mem/cmpress tradeoff
311 D strategy 10I 0 value Compression stategy
312 D version * value options(*string) Version string
313 D stream_size 10i 0 value Stream struct. size
315 D deflateSetDictionary...
316 D PR 10I 0 extproc('deflateSetDictionary') Init. dictionary
317 D strm like(z_stream) Compression stream
318 D dictionary 32767 const options(*varsize) Dictionary bytes
319 D dictLength 10U 0 value Dictionary length
321 D deflateCopy PR 10I 0 extproc('deflateCopy') Compress strm 2 strm
322 D dest like(z_stream) Destination stream
323 D source like(z_stream) Source stream
325 D deflateReset PR 10I 0 extproc('deflateReset') End and init. stream
326 D strm like(z_stream) Compression stream
328 D deflateParams PR 10I 0 extproc('deflateParams') Change level & strat
329 D strm like(z_stream) Compression stream
330 D level 10I 0 value Compression level
331 D strategy 10I 0 value Compression stategy
333 D deflateBound PR 10U 0 extproc('deflateBound') Change level & strat
334 D strm like(z_stream) Compression stream
335 D sourcelen 10U 0 value Compression level
337 D deflatePending PR 10I 0 extproc('deflatePending') Change level & strat
338 D strm like(z_stream) Compression stream
339 D pending 10U 0 Pending bytes
340 D bits 10I 0 Pending bits
342 D deflatePrime PR 10I 0 extproc('deflatePrime') Change level & strat
343 D strm like(z_stream) Compression stream
344 D bits 10I 0 value Number of bits to insert
345 D value 10I 0 value Bits to insert
347 D inflateInit2 PR 10I 0 extproc('inflateInit2_') Init. expansion
348 D strm like(z_stream) Expansion stream
349 D windowBits 10I 0 value log2(window size)
350 D version * value options(*string) Version string
351 D stream_size 10i 0 value Stream struct. size
353 D inflateSetDictionary...
354 D PR 10I 0 extproc('inflateSetDictionary') Init. dictionary
355 D strm like(z_stream) Expansion stream
356 D dictionary 32767 const options(*varsize) Dictionary bytes
357 D dictLength 10U 0 value Dictionary length
359 D inflateSync PR 10I 0 extproc('inflateSync') Sync. expansion
360 D strm like(z_stream) Expansion stream
362 D inflateCopy PR 10I 0 extproc('inflateCopy')
363 D dest like(z_stream) Destination stream
364 D source like(z_stream) Source stream
366 D inflateReset PR 10I 0 extproc('inflateReset') End and init. stream
367 D strm like(z_stream) Expansion stream
369 D inflateReset2 PR 10I 0 extproc('inflateReset2') End and init. stream
370 D strm like(z_stream) Expansion stream
371 D windowBits 10I 0 value Log2(buffer size)
373 D inflatePrime PR 10I 0 extproc('inflatePrime') Insert bits
374 D strm like(z_stream) Expansion stream
375 D bits 10I 0 value Bit count
376 D value 10I 0 value Bits to insert
378 D inflateMark PR 10I 0 extproc('inflateMark') Get inflate info
379 D strm like(z_stream) Expansion stream
382 D PR 10I 0 extproc('inflateBackInit_')
383 D strm like(z_stream) Expansion stream
384 D windowBits 10I 0 value Log2(buffer size)
385 D window 32767 options(*varsize) Buffer
386 D version * value options(*string) Version string
387 D stream_size 10i 0 value Stream struct. size
389 D inflateBack PR 10I 0 extproc('inflateBack')
390 D strm like(z_stream) Expansion stream
391 D in * value procptr Input function
392 D in_desc * value Input descriptor
393 D out * value procptr Output function
394 D out_desc * value Output descriptor
396 D inflateBackEnd PR 10I 0 extproc('inflateBackEnd')
397 D strm like(z_stream) Expansion stream
399 D zlibCompileFlags...
400 D PR 10U 0 extproc('zlibCompileFlags')
402 **************************************************************************
403 * Checksum function prototypes
404 **************************************************************************
406 D adler32 PR 10U 0 extproc('adler32') New checksum
407 D adler 10U 0 value Old checksum
408 D buf 32767 const options(*varsize) Bytes to accumulate
409 D len 10U 0 value Buffer length
411 D crc32 PR 10U 0 extproc('crc32') New checksum
412 D crc 10U 0 value Old checksum
413 D buf 32767 const options(*varsize) Bytes to accumulate
414 D len 10U 0 value Buffer length
416 **************************************************************************
417 * Miscellaneous function prototypes
418 **************************************************************************
420 D zError PR * extproc('zError') Error string
421 D err 10I 0 value Error code
423 D inflateSyncPoint...
424 D PR 10I 0 extproc('inflateSyncPoint')
425 D strm like(z_stream) Expansion stream
427 D get_crc_table PR * extproc('get_crc_table') Ptr to ulongs
429 D inflateUndermine...
430 D PR 10I 0 extproc('inflateUndermine')
431 D strm like(z_stream) Expansion stream
432 D arg 10I 0 value Error code
434 D inflateResetKeep...
435 D PR 10I 0 extproc('inflateResetKeep') End and init. stream
436 D strm like(z_stream) Expansion stream
438 D deflateResetKeep...
439 D PR 10I 0 extproc('deflateResetKeep') End and init. stream
440 D strm like(z_stream) Expansion stream
442 D gzflags PR 10U 0 extproc('gzflags')