Martin v. Löwis | d372aa8 | 2006-01-03 06:44:59 +0000 | [diff] [blame^] | 1 | * 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 |