Fossil SCM

fossil-scm / compat / zlib / os400 / zlibfixed.rpgle
Blame History Raw 579 lines
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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button