1 |
745 |
jeremybenn |
* ZLIB.INC - Interface to the general purpose compression library
|
2 |
|
|
*
|
3 |
|
|
* ILE RPG400 version by Patrick Monnerat, DATASPHERE.
|
4 |
|
|
* Version 1.2.3
|
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.3'
|
26 |
|
|
D ZLIB_VERNUM C X'1230'
|
27 |
|
|
*
|
28 |
|
|
* Other equates.
|
29 |
|
|
*
|
30 |
|
|
D Z_NO_FLUSH C 0
|
31 |
|
|
D Z_SYNC_FLUSH C 2
|
32 |
|
|
D Z_FULL_FLUSH C 3
|
33 |
|
|
D Z_FINISH C 4
|
34 |
|
|
D Z_BLOCK C 5
|
35 |
|
|
*
|
36 |
|
|
D Z_OK C 0
|
37 |
|
|
D Z_STREAM_END C 1
|
38 |
|
|
D Z_NEED_DICT C 2
|
39 |
|
|
D Z_ERRNO C -1
|
40 |
|
|
D Z_STREAM_ERROR C -2
|
41 |
|
|
D Z_DATA_ERROR C -3
|
42 |
|
|
D Z_MEM_ERROR C -4
|
43 |
|
|
D Z_BUF_ERROR C -5
|
44 |
|
|
DZ_VERSION_ERROR C -6
|
45 |
|
|
*
|
46 |
|
|
D Z_NO_COMPRESSION...
|
47 |
|
|
D C 0
|
48 |
|
|
D Z_BEST_SPEED C 1
|
49 |
|
|
D Z_BEST_COMPRESSION...
|
50 |
|
|
D C 9
|
51 |
|
|
D Z_DEFAULT_COMPRESSION...
|
52 |
|
|
D C -1
|
53 |
|
|
*
|
54 |
|
|
D Z_FILTERED C 1
|
55 |
|
|
D Z_HUFFMAN_ONLY C 2
|
56 |
|
|
D Z_RLE C 3
|
57 |
|
|
D Z_DEFAULT_STRATEGY...
|
58 |
|
|
D C 0
|
59 |
|
|
*
|
60 |
|
|
D Z_BINARY C 0
|
61 |
|
|
D Z_ASCII C 1
|
62 |
|
|
D Z_UNKNOWN C 2
|
63 |
|
|
*
|
64 |
|
|
D Z_DEFLATED C 8
|
65 |
|
|
*
|
66 |
|
|
D Z_NULL C 0
|
67 |
|
|
*
|
68 |
|
|
**************************************************************************
|
69 |
|
|
* Types
|
70 |
|
|
**************************************************************************
|
71 |
|
|
*
|
72 |
|
|
D z_streamp S * Stream struct ptr
|
73 |
|
|
D gzFile S * File pointer
|
74 |
|
|
D z_off_t S 10i 0 Stream offsets
|
75 |
|
|
*
|
76 |
|
|
**************************************************************************
|
77 |
|
|
* Structures
|
78 |
|
|
**************************************************************************
|
79 |
|
|
*
|
80 |
|
|
* The GZIP encode/decode stream support structure.
|
81 |
|
|
*
|
82 |
|
|
D z_stream DS align based(z_streamp)
|
83 |
|
|
D zs_next_in * Next input byte
|
84 |
|
|
D zs_avail_in 10U 0 Byte cnt at next_in
|
85 |
|
|
D zs_total_in 10U 0 Total bytes read
|
86 |
|
|
D zs_next_out * Output buffer ptr
|
87 |
|
|
D zs_avail_out 10U 0 Room left @ next_out
|
88 |
|
|
D zs_total_out 10U 0 Total bytes written
|
89 |
|
|
D zs_msg * Last errmsg or null
|
90 |
|
|
D zs_state * Internal state
|
91 |
|
|
D zs_zalloc * procptr Int. state allocator
|
92 |
|
|
D zs_free * procptr Int. state dealloc.
|
93 |
|
|
D zs_opaque * Private alloc. data
|
94 |
|
|
D zs_data_type 10i 0 ASC/BIN best guess
|
95 |
|
|
D zs_adler 10u 0 Uncompr. adler32 val
|
96 |
|
|
D 10U 0 Reserved
|
97 |
|
|
D 10U 0 Ptr. alignment
|
98 |
|
|
*
|
99 |
|
|
**************************************************************************
|
100 |
|
|
* Utility function prototypes
|
101 |
|
|
**************************************************************************
|
102 |
|
|
*
|
103 |
|
|
D compress PR 10I 0 extproc('compress')
|
104 |
|
|
D dest 32767 options(*varsize) Destination buffer
|
105 |
|
|
D destLen 10U 0 Destination length
|
106 |
|
|
D source 32767 const options(*varsize) Source buffer
|
107 |
|
|
D sourceLen 10u 0 value Source length
|
108 |
|
|
*
|
109 |
|
|
D compress2 PR 10I 0 extproc('compress2')
|
110 |
|
|
D dest 32767 options(*varsize) Destination buffer
|
111 |
|
|
D destLen 10U 0 Destination length
|
112 |
|
|
D source 32767 const options(*varsize) Source buffer
|
113 |
|
|
D sourceLen 10U 0 value Source length
|
114 |
|
|
D level 10I 0 value Compression level
|
115 |
|
|
*
|
116 |
|
|
D compressBound PR 10U 0 extproc('compressBound')
|
117 |
|
|
D sourceLen 10U 0 value
|
118 |
|
|
*
|
119 |
|
|
D uncompress PR 10I 0 extproc('uncompress')
|
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 |
|
|
*
|
125 |
|
|
D gzopen PR extproc('gzopen')
|
126 |
|
|
D like(gzFile)
|
127 |
|
|
D path * value options(*string) File pathname
|
128 |
|
|
D mode * value options(*string) Open mode
|
129 |
|
|
*
|
130 |
|
|
D gzdopen PR extproc('gzdopen')
|
131 |
|
|
D like(gzFile)
|
132 |
|
|
D fd 10i 0 value File descriptor
|
133 |
|
|
D mode * value options(*string) Open mode
|
134 |
|
|
*
|
135 |
|
|
D gzsetparams PR 10I 0 extproc('gzsetparams')
|
136 |
|
|
D file value like(gzFile) File pointer
|
137 |
|
|
D level 10I 0 value
|
138 |
|
|
D strategy 10i 0 value
|
139 |
|
|
*
|
140 |
|
|
D gzread PR 10I 0 extproc('gzread')
|
141 |
|
|
D file value like(gzFile) File pointer
|
142 |
|
|
D buf 32767 options(*varsize) Buffer
|
143 |
|
|
D len 10u 0 value Buffer length
|
144 |
|
|
*
|
145 |
|
|
D gzwrite PR 10I 0 extproc('gzwrite')
|
146 |
|
|
D file value like(gzFile) File pointer
|
147 |
|
|
D buf 32767 const options(*varsize) Buffer
|
148 |
|
|
D len 10u 0 value Buffer length
|
149 |
|
|
*
|
150 |
|
|
D gzputs PR 10I 0 extproc('gzputs')
|
151 |
|
|
D file value like(gzFile) File pointer
|
152 |
|
|
D s * value options(*string) String to output
|
153 |
|
|
*
|
154 |
|
|
D gzgets PR * extproc('gzgets')
|
155 |
|
|
D file value like(gzFile) File pointer
|
156 |
|
|
D buf 32767 options(*varsize) Read buffer
|
157 |
|
|
D len 10i 0 value Buffer length
|
158 |
|
|
*
|
159 |
|
|
D gzflush PR 10i 0 extproc('gzflush')
|
160 |
|
|
D file value like(gzFile) File pointer
|
161 |
|
|
D flush 10I 0 value Type of flush
|
162 |
|
|
*
|
163 |
|
|
D gzseek PR extproc('gzseek')
|
164 |
|
|
D like(z_off_t)
|
165 |
|
|
D file value like(gzFile) File pointer
|
166 |
|
|
D offset value like(z_off_t) Offset
|
167 |
|
|
D whence 10i 0 value Origin
|
168 |
|
|
*
|
169 |
|
|
D gzrewind PR 10i 0 extproc('gzrewind')
|
170 |
|
|
D file value like(gzFile) File pointer
|
171 |
|
|
*
|
172 |
|
|
D gztell PR extproc('gztell')
|
173 |
|
|
D like(z_off_t)
|
174 |
|
|
D file value like(gzFile) File pointer
|
175 |
|
|
*
|
176 |
|
|
D gzeof PR 10i 0 extproc('gzeof')
|
177 |
|
|
D file value like(gzFile) File pointer
|
178 |
|
|
*
|
179 |
|
|
D gzclose PR 10i 0 extproc('gzclose')
|
180 |
|
|
D file value like(gzFile) File pointer
|
181 |
|
|
*
|
182 |
|
|
D gzerror PR * extproc('gzerror') Error string
|
183 |
|
|
D file value like(gzFile) File pointer
|
184 |
|
|
D errnum 10I 0 Error code
|
185 |
|
|
*
|
186 |
|
|
D gzclearerr PR extproc('gzclearerr')
|
187 |
|
|
D file value like(gzFile) File pointer
|
188 |
|
|
*
|
189 |
|
|
**************************************************************************
|
190 |
|
|
* Basic function prototypes
|
191 |
|
|
**************************************************************************
|
192 |
|
|
*
|
193 |
|
|
D zlibVersion PR * extproc('zlibVersion') Version string
|
194 |
|
|
*
|
195 |
|
|
D deflateInit PR 10I 0 extproc('deflateInit_') Init. compression
|
196 |
|
|
D strm like(z_stream) Compression stream
|
197 |
|
|
D level 10I 0 value Compression level
|
198 |
|
|
D version * value options(*string) Version string
|
199 |
|
|
D stream_size 10i 0 value Stream struct. size
|
200 |
|
|
*
|
201 |
|
|
D deflate PR 10I 0 extproc('deflate') Compress data
|
202 |
|
|
D strm like(z_stream) Compression stream
|
203 |
|
|
D flush 10I 0 value Flush type required
|
204 |
|
|
*
|
205 |
|
|
D deflateEnd PR 10I 0 extproc('deflateEnd') Termin. compression
|
206 |
|
|
D strm like(z_stream) Compression stream
|
207 |
|
|
*
|
208 |
|
|
D inflateInit PR 10I 0 extproc('inflateInit_') Init. expansion
|
209 |
|
|
D strm like(z_stream) Expansion stream
|
210 |
|
|
D version * value options(*string) Version string
|
211 |
|
|
D stream_size 10i 0 value Stream struct. size
|
212 |
|
|
*
|
213 |
|
|
D inflate PR 10I 0 extproc('inflate') Expand data
|
214 |
|
|
D strm like(z_stream) Expansion stream
|
215 |
|
|
D flush 10I 0 value Flush type required
|
216 |
|
|
*
|
217 |
|
|
D inflateEnd PR 10I 0 extproc('inflateEnd') Termin. expansion
|
218 |
|
|
D strm like(z_stream) Expansion stream
|
219 |
|
|
*
|
220 |
|
|
**************************************************************************
|
221 |
|
|
* Advanced function prototypes
|
222 |
|
|
**************************************************************************
|
223 |
|
|
*
|
224 |
|
|
D deflateInit2 PR 10I 0 extproc('deflateInit2_') Init. compression
|
225 |
|
|
D strm like(z_stream) Compression stream
|
226 |
|
|
D level 10I 0 value Compression level
|
227 |
|
|
D method 10I 0 value Compression method
|
228 |
|
|
D windowBits 10I 0 value log2(window size)
|
229 |
|
|
D memLevel 10I 0 value Mem/cmpress tradeoff
|
230 |
|
|
D strategy 10I 0 value Compression stategy
|
231 |
|
|
D version * value options(*string) Version string
|
232 |
|
|
D stream_size 10i 0 value Stream struct. size
|
233 |
|
|
*
|
234 |
|
|
D deflateSetDictionary...
|
235 |
|
|
D PR 10I 0 extproc('deflateSetDictionary') Init. dictionary
|
236 |
|
|
D strm like(z_stream) Compression stream
|
237 |
|
|
D dictionary 32767 const options(*varsize) Dictionary bytes
|
238 |
|
|
D dictLength 10U 0 value Dictionary length
|
239 |
|
|
*
|
240 |
|
|
D deflateCopy PR 10I 0 extproc('deflateCopy') Compress strm 2 strm
|
241 |
|
|
D dest like(z_stream) Destination stream
|
242 |
|
|
D source like(z_stream) Source stream
|
243 |
|
|
*
|
244 |
|
|
D deflateReset PR 10I 0 extproc('deflateReset') End and init. stream
|
245 |
|
|
D strm like(z_stream) Compression stream
|
246 |
|
|
*
|
247 |
|
|
D deflateParams PR 10I 0 extproc('deflateParams') Change level & strat
|
248 |
|
|
D strm like(z_stream) Compression stream
|
249 |
|
|
D level 10I 0 value Compression level
|
250 |
|
|
D strategy 10I 0 value Compression stategy
|
251 |
|
|
*
|
252 |
|
|
D deflateBound PR 10U 0 extproc('deflateBound') Change level & strat
|
253 |
|
|
D strm like(z_stream) Compression stream
|
254 |
|
|
D sourcelen 10U 0 value Compression level
|
255 |
|
|
*
|
256 |
|
|
D deflatePrime PR 10I 0 extproc('deflatePrime') Change level & strat
|
257 |
|
|
D strm like(z_stream) Compression stream
|
258 |
|
|
D bits 10I 0 value Number of bits to insert
|
259 |
|
|
D value 10I 0 value Bits to insert
|
260 |
|
|
*
|
261 |
|
|
D inflateInit2 PR 10I 0 extproc('inflateInit2_') Init. expansion
|
262 |
|
|
D strm like(z_stream) Expansion stream
|
263 |
|
|
D windowBits 10I 0 value log2(window size)
|
264 |
|
|
D version * value options(*string) Version string
|
265 |
|
|
D stream_size 10i 0 value Stream struct. size
|
266 |
|
|
*
|
267 |
|
|
D inflateSetDictionary...
|
268 |
|
|
D PR 10I 0 extproc('inflateSetDictionary') Init. dictionary
|
269 |
|
|
D strm like(z_stream) Expansion stream
|
270 |
|
|
D dictionary 32767 const options(*varsize) Dictionary bytes
|
271 |
|
|
D dictLength 10U 0 value Dictionary length
|
272 |
|
|
*
|
273 |
|
|
D inflateSync PR 10I 0 extproc('inflateSync') Sync. expansion
|
274 |
|
|
D strm like(z_stream) Expansion stream
|
275 |
|
|
*
|
276 |
|
|
D inflateCopy PR 10I 0 extproc('inflateCopy')
|
277 |
|
|
D dest like(z_stream) Destination stream
|
278 |
|
|
D source like(z_stream) Source stream
|
279 |
|
|
*
|
280 |
|
|
D inflateReset PR 10I 0 extproc('inflateReset') End and init. stream
|
281 |
|
|
D strm like(z_stream) Expansion stream
|
282 |
|
|
*
|
283 |
|
|
D inflateBackInit...
|
284 |
|
|
D PR 10I 0 extproc('inflateBackInit_')
|
285 |
|
|
D strm like(z_stream) Expansion stream
|
286 |
|
|
D windowBits 10I 0 value Log2(buffer size)
|
287 |
|
|
D window 32767 options(*varsize) Buffer
|
288 |
|
|
D version * value options(*string) Version string
|
289 |
|
|
D stream_size 10i 0 value Stream struct. size
|
290 |
|
|
*
|
291 |
|
|
D inflateBack PR 10I 0 extproc('inflateBack')
|
292 |
|
|
D strm like(z_stream) Expansion stream
|
293 |
|
|
D in * value procptr Input function
|
294 |
|
|
D in_desc * value Input descriptor
|
295 |
|
|
D out * value procptr Output function
|
296 |
|
|
D out_desc * value Output descriptor
|
297 |
|
|
*
|
298 |
|
|
D inflateBackEnd PR 10I 0 extproc('inflateBackEnd')
|
299 |
|
|
D strm like(z_stream) Expansion stream
|
300 |
|
|
*
|
301 |
|
|
D zlibCompileFlags...
|
302 |
|
|
D PR 10U 0 extproc('zlibCompileFlags')
|
303 |
|
|
*
|
304 |
|
|
**************************************************************************
|
305 |
|
|
* Checksum function prototypes
|
306 |
|
|
**************************************************************************
|
307 |
|
|
*
|
308 |
|
|
D adler32 PR 10U 0 extproc('adler32') New checksum
|
309 |
|
|
D adler 10U 0 value Old checksum
|
310 |
|
|
D buf 32767 const options(*varsize) Bytes to accumulate
|
311 |
|
|
D len 10U 0 value Buffer length
|
312 |
|
|
*
|
313 |
|
|
D crc32 PR 10U 0 extproc('crc32') New checksum
|
314 |
|
|
D crc 10U 0 value Old checksum
|
315 |
|
|
D buf 32767 const options(*varsize) Bytes to accumulate
|
316 |
|
|
D len 10U 0 value Buffer length
|
317 |
|
|
*
|
318 |
|
|
**************************************************************************
|
319 |
|
|
* Miscellaneous function prototypes
|
320 |
|
|
**************************************************************************
|
321 |
|
|
*
|
322 |
|
|
D zError PR * extproc('zError') Error string
|
323 |
|
|
D err 10I 0 value Error code
|
324 |
|
|
*
|
325 |
|
|
D inflateSyncPoint...
|
326 |
|
|
D PR 10I 0 extproc('inflateSyncPoint')
|
327 |
|
|
D strm like(z_stream) Expansion stream
|
328 |
|
|
*
|
329 |
|
|
D get_crc_table PR * extproc('get_crc_table') Ptr to ulongs
|
330 |
|
|
*
|
331 |
|
|
/endif
|