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
|
---|