annotate src/zlib-1.2.7/contrib/ada/zlib-thin.ads @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents e13257ea84a4
children
rev   line source
Chris@4 1 ----------------------------------------------------------------
Chris@4 2 -- ZLib for Ada thick binding. --
Chris@4 3 -- --
Chris@4 4 -- Copyright (C) 2002-2003 Dmitriy Anisimkov --
Chris@4 5 -- --
Chris@4 6 -- Open source license information is in the zlib.ads file. --
Chris@4 7 ----------------------------------------------------------------
Chris@4 8
Chris@4 9 -- $Id: zlib-thin.ads,v 1.11 2004/07/23 06:33:11 vagul Exp $
Chris@4 10
Chris@4 11 with Interfaces.C.Strings;
Chris@4 12
Chris@4 13 with System;
Chris@4 14
Chris@4 15 private package ZLib.Thin is
Chris@4 16
Chris@4 17 -- From zconf.h
Chris@4 18
Chris@4 19 MAX_MEM_LEVEL : constant := 9; -- zconf.h:105
Chris@4 20 -- zconf.h:105
Chris@4 21 MAX_WBITS : constant := 15; -- zconf.h:115
Chris@4 22 -- 32K LZ77 window
Chris@4 23 -- zconf.h:115
Chris@4 24 SEEK_SET : constant := 8#0000#; -- zconf.h:244
Chris@4 25 -- Seek from beginning of file.
Chris@4 26 -- zconf.h:244
Chris@4 27 SEEK_CUR : constant := 1; -- zconf.h:245
Chris@4 28 -- Seek from current position.
Chris@4 29 -- zconf.h:245
Chris@4 30 SEEK_END : constant := 2; -- zconf.h:246
Chris@4 31 -- Set file pointer to EOF plus "offset"
Chris@4 32 -- zconf.h:246
Chris@4 33
Chris@4 34 type Byte is new Interfaces.C.unsigned_char; -- 8 bits
Chris@4 35 -- zconf.h:214
Chris@4 36 type UInt is new Interfaces.C.unsigned; -- 16 bits or more
Chris@4 37 -- zconf.h:216
Chris@4 38 type Int is new Interfaces.C.int;
Chris@4 39
Chris@4 40 type ULong is new Interfaces.C.unsigned_long; -- 32 bits or more
Chris@4 41 -- zconf.h:217
Chris@4 42 subtype Chars_Ptr is Interfaces.C.Strings.chars_ptr;
Chris@4 43
Chris@4 44 type ULong_Access is access ULong;
Chris@4 45 type Int_Access is access Int;
Chris@4 46
Chris@4 47 subtype Voidp is System.Address; -- zconf.h:232
Chris@4 48
Chris@4 49 subtype Byte_Access is Voidp;
Chris@4 50
Chris@4 51 Nul : constant Voidp := System.Null_Address;
Chris@4 52 -- end from zconf
Chris@4 53
Chris@4 54 Z_NO_FLUSH : constant := 8#0000#; -- zlib.h:125
Chris@4 55 -- zlib.h:125
Chris@4 56 Z_PARTIAL_FLUSH : constant := 1; -- zlib.h:126
Chris@4 57 -- will be removed, use
Chris@4 58 -- Z_SYNC_FLUSH instead
Chris@4 59 -- zlib.h:126
Chris@4 60 Z_SYNC_FLUSH : constant := 2; -- zlib.h:127
Chris@4 61 -- zlib.h:127
Chris@4 62 Z_FULL_FLUSH : constant := 3; -- zlib.h:128
Chris@4 63 -- zlib.h:128
Chris@4 64 Z_FINISH : constant := 4; -- zlib.h:129
Chris@4 65 -- zlib.h:129
Chris@4 66 Z_OK : constant := 8#0000#; -- zlib.h:132
Chris@4 67 -- zlib.h:132
Chris@4 68 Z_STREAM_END : constant := 1; -- zlib.h:133
Chris@4 69 -- zlib.h:133
Chris@4 70 Z_NEED_DICT : constant := 2; -- zlib.h:134
Chris@4 71 -- zlib.h:134
Chris@4 72 Z_ERRNO : constant := -1; -- zlib.h:135
Chris@4 73 -- zlib.h:135
Chris@4 74 Z_STREAM_ERROR : constant := -2; -- zlib.h:136
Chris@4 75 -- zlib.h:136
Chris@4 76 Z_DATA_ERROR : constant := -3; -- zlib.h:137
Chris@4 77 -- zlib.h:137
Chris@4 78 Z_MEM_ERROR : constant := -4; -- zlib.h:138
Chris@4 79 -- zlib.h:138
Chris@4 80 Z_BUF_ERROR : constant := -5; -- zlib.h:139
Chris@4 81 -- zlib.h:139
Chris@4 82 Z_VERSION_ERROR : constant := -6; -- zlib.h:140
Chris@4 83 -- zlib.h:140
Chris@4 84 Z_NO_COMPRESSION : constant := 8#0000#; -- zlib.h:145
Chris@4 85 -- zlib.h:145
Chris@4 86 Z_BEST_SPEED : constant := 1; -- zlib.h:146
Chris@4 87 -- zlib.h:146
Chris@4 88 Z_BEST_COMPRESSION : constant := 9; -- zlib.h:147
Chris@4 89 -- zlib.h:147
Chris@4 90 Z_DEFAULT_COMPRESSION : constant := -1; -- zlib.h:148
Chris@4 91 -- zlib.h:148
Chris@4 92 Z_FILTERED : constant := 1; -- zlib.h:151
Chris@4 93 -- zlib.h:151
Chris@4 94 Z_HUFFMAN_ONLY : constant := 2; -- zlib.h:152
Chris@4 95 -- zlib.h:152
Chris@4 96 Z_DEFAULT_STRATEGY : constant := 8#0000#; -- zlib.h:153
Chris@4 97 -- zlib.h:153
Chris@4 98 Z_BINARY : constant := 8#0000#; -- zlib.h:156
Chris@4 99 -- zlib.h:156
Chris@4 100 Z_ASCII : constant := 1; -- zlib.h:157
Chris@4 101 -- zlib.h:157
Chris@4 102 Z_UNKNOWN : constant := 2; -- zlib.h:158
Chris@4 103 -- zlib.h:158
Chris@4 104 Z_DEFLATED : constant := 8; -- zlib.h:161
Chris@4 105 -- zlib.h:161
Chris@4 106 Z_NULL : constant := 8#0000#; -- zlib.h:164
Chris@4 107 -- for initializing zalloc, zfree, opaque
Chris@4 108 -- zlib.h:164
Chris@4 109 type gzFile is new Voidp; -- zlib.h:646
Chris@4 110
Chris@4 111 type Z_Stream is private;
Chris@4 112
Chris@4 113 type Z_Streamp is access all Z_Stream; -- zlib.h:89
Chris@4 114
Chris@4 115 type alloc_func is access function
Chris@4 116 (Opaque : Voidp;
Chris@4 117 Items : UInt;
Chris@4 118 Size : UInt)
Chris@4 119 return Voidp; -- zlib.h:63
Chris@4 120
Chris@4 121 type free_func is access procedure (opaque : Voidp; address : Voidp);
Chris@4 122
Chris@4 123 function zlibVersion return Chars_Ptr;
Chris@4 124
Chris@4 125 function Deflate (strm : Z_Streamp; flush : Int) return Int;
Chris@4 126
Chris@4 127 function DeflateEnd (strm : Z_Streamp) return Int;
Chris@4 128
Chris@4 129 function Inflate (strm : Z_Streamp; flush : Int) return Int;
Chris@4 130
Chris@4 131 function InflateEnd (strm : Z_Streamp) return Int;
Chris@4 132
Chris@4 133 function deflateSetDictionary
Chris@4 134 (strm : Z_Streamp;
Chris@4 135 dictionary : Byte_Access;
Chris@4 136 dictLength : UInt)
Chris@4 137 return Int;
Chris@4 138
Chris@4 139 function deflateCopy (dest : Z_Streamp; source : Z_Streamp) return Int;
Chris@4 140 -- zlib.h:478
Chris@4 141
Chris@4 142 function deflateReset (strm : Z_Streamp) return Int; -- zlib.h:495
Chris@4 143
Chris@4 144 function deflateParams
Chris@4 145 (strm : Z_Streamp;
Chris@4 146 level : Int;
Chris@4 147 strategy : Int)
Chris@4 148 return Int; -- zlib.h:506
Chris@4 149
Chris@4 150 function inflateSetDictionary
Chris@4 151 (strm : Z_Streamp;
Chris@4 152 dictionary : Byte_Access;
Chris@4 153 dictLength : UInt)
Chris@4 154 return Int; -- zlib.h:548
Chris@4 155
Chris@4 156 function inflateSync (strm : Z_Streamp) return Int; -- zlib.h:565
Chris@4 157
Chris@4 158 function inflateReset (strm : Z_Streamp) return Int; -- zlib.h:580
Chris@4 159
Chris@4 160 function compress
Chris@4 161 (dest : Byte_Access;
Chris@4 162 destLen : ULong_Access;
Chris@4 163 source : Byte_Access;
Chris@4 164 sourceLen : ULong)
Chris@4 165 return Int; -- zlib.h:601
Chris@4 166
Chris@4 167 function compress2
Chris@4 168 (dest : Byte_Access;
Chris@4 169 destLen : ULong_Access;
Chris@4 170 source : Byte_Access;
Chris@4 171 sourceLen : ULong;
Chris@4 172 level : Int)
Chris@4 173 return Int; -- zlib.h:615
Chris@4 174
Chris@4 175 function uncompress
Chris@4 176 (dest : Byte_Access;
Chris@4 177 destLen : ULong_Access;
Chris@4 178 source : Byte_Access;
Chris@4 179 sourceLen : ULong)
Chris@4 180 return Int;
Chris@4 181
Chris@4 182 function gzopen (path : Chars_Ptr; mode : Chars_Ptr) return gzFile;
Chris@4 183
Chris@4 184 function gzdopen (fd : Int; mode : Chars_Ptr) return gzFile;
Chris@4 185
Chris@4 186 function gzsetparams
Chris@4 187 (file : gzFile;
Chris@4 188 level : Int;
Chris@4 189 strategy : Int)
Chris@4 190 return Int;
Chris@4 191
Chris@4 192 function gzread
Chris@4 193 (file : gzFile;
Chris@4 194 buf : Voidp;
Chris@4 195 len : UInt)
Chris@4 196 return Int;
Chris@4 197
Chris@4 198 function gzwrite
Chris@4 199 (file : in gzFile;
Chris@4 200 buf : in Voidp;
Chris@4 201 len : in UInt)
Chris@4 202 return Int;
Chris@4 203
Chris@4 204 function gzprintf (file : in gzFile; format : in Chars_Ptr) return Int;
Chris@4 205
Chris@4 206 function gzputs (file : in gzFile; s : in Chars_Ptr) return Int;
Chris@4 207
Chris@4 208 function gzgets
Chris@4 209 (file : gzFile;
Chris@4 210 buf : Chars_Ptr;
Chris@4 211 len : Int)
Chris@4 212 return Chars_Ptr;
Chris@4 213
Chris@4 214 function gzputc (file : gzFile; char : Int) return Int;
Chris@4 215
Chris@4 216 function gzgetc (file : gzFile) return Int;
Chris@4 217
Chris@4 218 function gzflush (file : gzFile; flush : Int) return Int;
Chris@4 219
Chris@4 220 function gzseek
Chris@4 221 (file : gzFile;
Chris@4 222 offset : Int;
Chris@4 223 whence : Int)
Chris@4 224 return Int;
Chris@4 225
Chris@4 226 function gzrewind (file : gzFile) return Int;
Chris@4 227
Chris@4 228 function gztell (file : gzFile) return Int;
Chris@4 229
Chris@4 230 function gzeof (file : gzFile) return Int;
Chris@4 231
Chris@4 232 function gzclose (file : gzFile) return Int;
Chris@4 233
Chris@4 234 function gzerror (file : gzFile; errnum : Int_Access) return Chars_Ptr;
Chris@4 235
Chris@4 236 function adler32
Chris@4 237 (adler : ULong;
Chris@4 238 buf : Byte_Access;
Chris@4 239 len : UInt)
Chris@4 240 return ULong;
Chris@4 241
Chris@4 242 function crc32
Chris@4 243 (crc : ULong;
Chris@4 244 buf : Byte_Access;
Chris@4 245 len : UInt)
Chris@4 246 return ULong;
Chris@4 247
Chris@4 248 function deflateInit
Chris@4 249 (strm : Z_Streamp;
Chris@4 250 level : Int;
Chris@4 251 version : Chars_Ptr;
Chris@4 252 stream_size : Int)
Chris@4 253 return Int;
Chris@4 254
Chris@4 255 function deflateInit2
Chris@4 256 (strm : Z_Streamp;
Chris@4 257 level : Int;
Chris@4 258 method : Int;
Chris@4 259 windowBits : Int;
Chris@4 260 memLevel : Int;
Chris@4 261 strategy : Int;
Chris@4 262 version : Chars_Ptr;
Chris@4 263 stream_size : Int)
Chris@4 264 return Int;
Chris@4 265
Chris@4 266 function Deflate_Init
Chris@4 267 (strm : Z_Streamp;
Chris@4 268 level : Int;
Chris@4 269 method : Int;
Chris@4 270 windowBits : Int;
Chris@4 271 memLevel : Int;
Chris@4 272 strategy : Int)
Chris@4 273 return Int;
Chris@4 274 pragma Inline (Deflate_Init);
Chris@4 275
Chris@4 276 function inflateInit
Chris@4 277 (strm : Z_Streamp;
Chris@4 278 version : Chars_Ptr;
Chris@4 279 stream_size : Int)
Chris@4 280 return Int;
Chris@4 281
Chris@4 282 function inflateInit2
Chris@4 283 (strm : in Z_Streamp;
Chris@4 284 windowBits : in Int;
Chris@4 285 version : in Chars_Ptr;
Chris@4 286 stream_size : in Int)
Chris@4 287 return Int;
Chris@4 288
Chris@4 289 function inflateBackInit
Chris@4 290 (strm : in Z_Streamp;
Chris@4 291 windowBits : in Int;
Chris@4 292 window : in Byte_Access;
Chris@4 293 version : in Chars_Ptr;
Chris@4 294 stream_size : in Int)
Chris@4 295 return Int;
Chris@4 296 -- Size of window have to be 2**windowBits.
Chris@4 297
Chris@4 298 function Inflate_Init (strm : Z_Streamp; windowBits : Int) return Int;
Chris@4 299 pragma Inline (Inflate_Init);
Chris@4 300
Chris@4 301 function zError (err : Int) return Chars_Ptr;
Chris@4 302
Chris@4 303 function inflateSyncPoint (z : Z_Streamp) return Int;
Chris@4 304
Chris@4 305 function get_crc_table return ULong_Access;
Chris@4 306
Chris@4 307 -- Interface to the available fields of the z_stream structure.
Chris@4 308 -- The application must update next_in and avail_in when avail_in has
Chris@4 309 -- dropped to zero. It must update next_out and avail_out when avail_out
Chris@4 310 -- has dropped to zero. The application must initialize zalloc, zfree and
Chris@4 311 -- opaque before calling the init function.
Chris@4 312
Chris@4 313 procedure Set_In
Chris@4 314 (Strm : in out Z_Stream;
Chris@4 315 Buffer : in Voidp;
Chris@4 316 Size : in UInt);
Chris@4 317 pragma Inline (Set_In);
Chris@4 318
Chris@4 319 procedure Set_Out
Chris@4 320 (Strm : in out Z_Stream;
Chris@4 321 Buffer : in Voidp;
Chris@4 322 Size : in UInt);
Chris@4 323 pragma Inline (Set_Out);
Chris@4 324
Chris@4 325 procedure Set_Mem_Func
Chris@4 326 (Strm : in out Z_Stream;
Chris@4 327 Opaque : in Voidp;
Chris@4 328 Alloc : in alloc_func;
Chris@4 329 Free : in free_func);
Chris@4 330 pragma Inline (Set_Mem_Func);
Chris@4 331
Chris@4 332 function Last_Error_Message (Strm : in Z_Stream) return String;
Chris@4 333 pragma Inline (Last_Error_Message);
Chris@4 334
Chris@4 335 function Avail_Out (Strm : in Z_Stream) return UInt;
Chris@4 336 pragma Inline (Avail_Out);
Chris@4 337
Chris@4 338 function Avail_In (Strm : in Z_Stream) return UInt;
Chris@4 339 pragma Inline (Avail_In);
Chris@4 340
Chris@4 341 function Total_In (Strm : in Z_Stream) return ULong;
Chris@4 342 pragma Inline (Total_In);
Chris@4 343
Chris@4 344 function Total_Out (Strm : in Z_Stream) return ULong;
Chris@4 345 pragma Inline (Total_Out);
Chris@4 346
Chris@4 347 function inflateCopy
Chris@4 348 (dest : in Z_Streamp;
Chris@4 349 Source : in Z_Streamp)
Chris@4 350 return Int;
Chris@4 351
Chris@4 352 function compressBound (Source_Len : in ULong) return ULong;
Chris@4 353
Chris@4 354 function deflateBound
Chris@4 355 (Strm : in Z_Streamp;
Chris@4 356 Source_Len : in ULong)
Chris@4 357 return ULong;
Chris@4 358
Chris@4 359 function gzungetc (C : in Int; File : in gzFile) return Int;
Chris@4 360
Chris@4 361 function zlibCompileFlags return ULong;
Chris@4 362
Chris@4 363 private
Chris@4 364
Chris@4 365 type Z_Stream is record -- zlib.h:68
Chris@4 366 Next_In : Voidp := Nul; -- next input byte
Chris@4 367 Avail_In : UInt := 0; -- number of bytes available at next_in
Chris@4 368 Total_In : ULong := 0; -- total nb of input bytes read so far
Chris@4 369 Next_Out : Voidp := Nul; -- next output byte should be put there
Chris@4 370 Avail_Out : UInt := 0; -- remaining free space at next_out
Chris@4 371 Total_Out : ULong := 0; -- total nb of bytes output so far
Chris@4 372 msg : Chars_Ptr; -- last error message, NULL if no error
Chris@4 373 state : Voidp; -- not visible by applications
Chris@4 374 zalloc : alloc_func := null; -- used to allocate the internal state
Chris@4 375 zfree : free_func := null; -- used to free the internal state
Chris@4 376 opaque : Voidp; -- private data object passed to
Chris@4 377 -- zalloc and zfree
Chris@4 378 data_type : Int; -- best guess about the data type:
Chris@4 379 -- ascii or binary
Chris@4 380 adler : ULong; -- adler32 value of the uncompressed
Chris@4 381 -- data
Chris@4 382 reserved : ULong; -- reserved for future use
Chris@4 383 end record;
Chris@4 384
Chris@4 385 pragma Convention (C, Z_Stream);
Chris@4 386
Chris@4 387 pragma Import (C, zlibVersion, "zlibVersion");
Chris@4 388 pragma Import (C, Deflate, "deflate");
Chris@4 389 pragma Import (C, DeflateEnd, "deflateEnd");
Chris@4 390 pragma Import (C, Inflate, "inflate");
Chris@4 391 pragma Import (C, InflateEnd, "inflateEnd");
Chris@4 392 pragma Import (C, deflateSetDictionary, "deflateSetDictionary");
Chris@4 393 pragma Import (C, deflateCopy, "deflateCopy");
Chris@4 394 pragma Import (C, deflateReset, "deflateReset");
Chris@4 395 pragma Import (C, deflateParams, "deflateParams");
Chris@4 396 pragma Import (C, inflateSetDictionary, "inflateSetDictionary");
Chris@4 397 pragma Import (C, inflateSync, "inflateSync");
Chris@4 398 pragma Import (C, inflateReset, "inflateReset");
Chris@4 399 pragma Import (C, compress, "compress");
Chris@4 400 pragma Import (C, compress2, "compress2");
Chris@4 401 pragma Import (C, uncompress, "uncompress");
Chris@4 402 pragma Import (C, gzopen, "gzopen");
Chris@4 403 pragma Import (C, gzdopen, "gzdopen");
Chris@4 404 pragma Import (C, gzsetparams, "gzsetparams");
Chris@4 405 pragma Import (C, gzread, "gzread");
Chris@4 406 pragma Import (C, gzwrite, "gzwrite");
Chris@4 407 pragma Import (C, gzprintf, "gzprintf");
Chris@4 408 pragma Import (C, gzputs, "gzputs");
Chris@4 409 pragma Import (C, gzgets, "gzgets");
Chris@4 410 pragma Import (C, gzputc, "gzputc");
Chris@4 411 pragma Import (C, gzgetc, "gzgetc");
Chris@4 412 pragma Import (C, gzflush, "gzflush");
Chris@4 413 pragma Import (C, gzseek, "gzseek");
Chris@4 414 pragma Import (C, gzrewind, "gzrewind");
Chris@4 415 pragma Import (C, gztell, "gztell");
Chris@4 416 pragma Import (C, gzeof, "gzeof");
Chris@4 417 pragma Import (C, gzclose, "gzclose");
Chris@4 418 pragma Import (C, gzerror, "gzerror");
Chris@4 419 pragma Import (C, adler32, "adler32");
Chris@4 420 pragma Import (C, crc32, "crc32");
Chris@4 421 pragma Import (C, deflateInit, "deflateInit_");
Chris@4 422 pragma Import (C, inflateInit, "inflateInit_");
Chris@4 423 pragma Import (C, deflateInit2, "deflateInit2_");
Chris@4 424 pragma Import (C, inflateInit2, "inflateInit2_");
Chris@4 425 pragma Import (C, zError, "zError");
Chris@4 426 pragma Import (C, inflateSyncPoint, "inflateSyncPoint");
Chris@4 427 pragma Import (C, get_crc_table, "get_crc_table");
Chris@4 428
Chris@4 429 -- since zlib 1.2.0:
Chris@4 430
Chris@4 431 pragma Import (C, inflateCopy, "inflateCopy");
Chris@4 432 pragma Import (C, compressBound, "compressBound");
Chris@4 433 pragma Import (C, deflateBound, "deflateBound");
Chris@4 434 pragma Import (C, gzungetc, "gzungetc");
Chris@4 435 pragma Import (C, zlibCompileFlags, "zlibCompileFlags");
Chris@4 436
Chris@4 437 pragma Import (C, inflateBackInit, "inflateBackInit_");
Chris@4 438
Chris@4 439 -- I stopped binding the inflateBack routines, becouse realize that
Chris@4 440 -- it does not support zlib and gzip headers for now, and have no
Chris@4 441 -- symmetric deflateBack routines.
Chris@4 442 -- ZLib-Ada is symmetric regarding deflate/inflate data transformation
Chris@4 443 -- and has a similar generic callback interface for the
Chris@4 444 -- deflate/inflate transformation based on the regular Deflate/Inflate
Chris@4 445 -- routines.
Chris@4 446
Chris@4 447 -- pragma Import (C, inflateBack, "inflateBack");
Chris@4 448 -- pragma Import (C, inflateBackEnd, "inflateBackEnd");
Chris@4 449
Chris@4 450 end ZLib.Thin;