Merge from mainline (gomp-merge-2005-02-26).
[official-gcc.git] / zlib / contrib / ada / zlib-thin.adb
blobf84e54f3faa4553effa7981ff5891ffa70a7f6fe
1 ----------------------------------------------------------------
2 -- ZLib for Ada thick binding. --
3 -- --
4 -- Copyright (C) 2002-2003 Dmitriy Anisimkov --
5 -- --
6 -- Open source license information is in the zlib.ads file. --
7 ----------------------------------------------------------------
9 -- $Id: zlib-thin.adb,v 1.1.1.1 2004/10/11 17:44:23 tromey Exp $
11 package body ZLib.Thin is
13 ZLIB_VERSION : constant Chars_Ptr :=
14 Interfaces.C.Strings.New_String ("1.1.4");
16 Z_Stream_Size : constant Int := Z_Stream'Size / System.Storage_Unit;
18 --------------
19 -- Avail_In --
20 --------------
22 function Avail_In (Strm : in Z_Stream) return UInt is
23 begin
24 return Strm.Avail_In;
25 end Avail_In;
27 ---------------
28 -- Avail_Out --
29 ---------------
31 function Avail_Out (Strm : in Z_Stream) return UInt is
32 begin
33 return Strm.Avail_Out;
34 end Avail_Out;
36 ------------------
37 -- Deflate_Init --
38 ------------------
40 function Deflate_Init
41 (strm : in Z_Streamp;
42 level : in Int := Z_DEFAULT_COMPRESSION)
43 return Int is
44 begin
45 return deflateInit (strm, level, ZLIB_VERSION, Z_Stream_Size);
46 end Deflate_Init;
48 function Deflate_Init
49 (strm : Z_Streamp;
50 level : Int;
51 method : Int;
52 windowBits : Int;
53 memLevel : Int;
54 strategy : Int)
55 return Int is
56 begin
57 return deflateInit2
58 (strm,
59 level,
60 method,
61 windowBits,
62 memLevel,
63 strategy,
64 ZLIB_VERSION,
65 Z_Stream_Size);
66 end Deflate_Init;
68 ------------------
69 -- Inflate_Init --
70 ------------------
72 function Inflate_Init (strm : Z_Streamp) return Int is
73 begin
74 return inflateInit (strm, ZLIB_VERSION, Z_Stream_Size);
75 end Inflate_Init;
77 function Inflate_Init (strm : Z_Streamp; windowBits : Int) return Int is
78 begin
79 return inflateInit2 (strm, windowBits, ZLIB_VERSION, Z_Stream_Size);
80 end Inflate_Init;
82 function Last_Error_Message (Strm : in Z_Stream) return String is
83 use Interfaces.C.Strings;
84 begin
85 if Strm.msg = Null_Ptr then
86 return "";
87 else
88 return Value (Strm.msg);
89 end if;
90 end Last_Error_Message;
92 -------------
93 -- Need_In --
94 -------------
96 function Need_In (strm : Z_Stream) return Boolean is
97 begin
98 return strm.Avail_In = 0;
99 end Need_In;
101 --------------
102 -- Need_Out --
103 --------------
105 function Need_Out (strm : Z_Stream) return Boolean is
106 begin
107 return strm.Avail_Out = 0;
108 end Need_Out;
110 ------------
111 -- Set_In --
112 ------------
114 procedure Set_In
115 (Strm : in out Z_Stream;
116 Buffer : in Byte_Access;
117 Size : in UInt) is
118 begin
119 Strm.Next_In := Buffer;
120 Strm.Avail_In := Size;
121 end Set_In;
123 procedure Set_In
124 (Strm : in out Z_Stream;
125 Buffer : in Voidp;
126 Size : in UInt) is
127 begin
128 Set_In (Strm, Bytes.To_Pointer (Buffer), Size);
129 end Set_In;
131 ------------------
132 -- Set_Mem_Func --
133 ------------------
135 procedure Set_Mem_Func
136 (Strm : in out Z_Stream;
137 Opaque : in Voidp;
138 Alloc : in alloc_func;
139 Free : in free_func) is
140 begin
141 Strm.opaque := Opaque;
142 Strm.zalloc := Alloc;
143 Strm.zfree := Free;
144 end Set_Mem_Func;
146 -------------
147 -- Set_Out --
148 -------------
150 procedure Set_Out
151 (Strm : in out Z_Stream;
152 Buffer : in Byte_Access;
153 Size : in UInt) is
154 begin
155 Strm.Next_Out := Buffer;
156 Strm.Avail_Out := Size;
157 end Set_Out;
159 procedure Set_Out
160 (Strm : in out Z_Stream;
161 Buffer : in Voidp;
162 Size : in UInt) is
163 begin
164 Set_Out (Strm, Bytes.To_Pointer (Buffer), Size);
165 end Set_Out;
167 --------------
168 -- Total_In --
169 --------------
171 function Total_In (Strm : in Z_Stream) return ULong is
172 begin
173 return Strm.Total_In;
174 end Total_In;
176 ---------------
177 -- Total_Out --
178 ---------------
180 function Total_Out (Strm : in Z_Stream) return ULong is
181 begin
182 return Strm.Total_Out;
183 end Total_Out;
185 end ZLib.Thin;