xref: /minix3/common/dist/zlib/contrib/ada/zlib-thin.adb (revision 44bedb31d842b4b0444105519bcf929a69fe2dc1)
1*44bedb31SLionel Sambuc----------------------------------------------------------------
2*44bedb31SLionel Sambuc--  ZLib for Ada thick binding.                               --
3*44bedb31SLionel Sambuc--                                                            --
4*44bedb31SLionel Sambuc--  Copyright (C) 2002-2003 Dmitriy Anisimkov                 --
5*44bedb31SLionel Sambuc--                                                            --
6*44bedb31SLionel Sambuc--  Open source license information is in the zlib.ads file.  --
7*44bedb31SLionel Sambuc----------------------------------------------------------------
8*44bedb31SLionel Sambuc
9*44bedb31SLionel Sambuc--  Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp
10*44bedb31SLionel Sambuc
11*44bedb31SLionel Sambucpackage body ZLib.Thin is
12*44bedb31SLionel Sambuc
13*44bedb31SLionel Sambuc   ZLIB_VERSION  : constant Chars_Ptr := zlibVersion;
14*44bedb31SLionel Sambuc
15*44bedb31SLionel Sambuc   Z_Stream_Size : constant Int := Z_Stream'Size / System.Storage_Unit;
16*44bedb31SLionel Sambuc
17*44bedb31SLionel Sambuc   --------------
18*44bedb31SLionel Sambuc   -- Avail_In --
19*44bedb31SLionel Sambuc   --------------
20*44bedb31SLionel Sambuc
21*44bedb31SLionel Sambuc   function Avail_In (Strm : in Z_Stream) return UInt is
22*44bedb31SLionel Sambuc   begin
23*44bedb31SLionel Sambuc      return Strm.Avail_In;
24*44bedb31SLionel Sambuc   end Avail_In;
25*44bedb31SLionel Sambuc
26*44bedb31SLionel Sambuc   ---------------
27*44bedb31SLionel Sambuc   -- Avail_Out --
28*44bedb31SLionel Sambuc   ---------------
29*44bedb31SLionel Sambuc
30*44bedb31SLionel Sambuc   function Avail_Out (Strm : in Z_Stream) return UInt is
31*44bedb31SLionel Sambuc   begin
32*44bedb31SLionel Sambuc      return Strm.Avail_Out;
33*44bedb31SLionel Sambuc   end Avail_Out;
34*44bedb31SLionel Sambuc
35*44bedb31SLionel Sambuc   ------------------
36*44bedb31SLionel Sambuc   -- Deflate_Init --
37*44bedb31SLionel Sambuc   ------------------
38*44bedb31SLionel Sambuc
39*44bedb31SLionel Sambuc   function Deflate_Init
40*44bedb31SLionel Sambuc     (strm       : Z_Streamp;
41*44bedb31SLionel Sambuc      level      : Int;
42*44bedb31SLionel Sambuc      method     : Int;
43*44bedb31SLionel Sambuc      windowBits : Int;
44*44bedb31SLionel Sambuc      memLevel   : Int;
45*44bedb31SLionel Sambuc      strategy   : Int)
46*44bedb31SLionel Sambuc      return       Int is
47*44bedb31SLionel Sambuc   begin
48*44bedb31SLionel Sambuc      return deflateInit2
49*44bedb31SLionel Sambuc               (strm,
50*44bedb31SLionel Sambuc                level,
51*44bedb31SLionel Sambuc                method,
52*44bedb31SLionel Sambuc                windowBits,
53*44bedb31SLionel Sambuc                memLevel,
54*44bedb31SLionel Sambuc                strategy,
55*44bedb31SLionel Sambuc                ZLIB_VERSION,
56*44bedb31SLionel Sambuc                Z_Stream_Size);
57*44bedb31SLionel Sambuc   end Deflate_Init;
58*44bedb31SLionel Sambuc
59*44bedb31SLionel Sambuc   ------------------
60*44bedb31SLionel Sambuc   -- Inflate_Init --
61*44bedb31SLionel Sambuc   ------------------
62*44bedb31SLionel Sambuc
63*44bedb31SLionel Sambuc   function Inflate_Init (strm : Z_Streamp; windowBits : Int) return Int is
64*44bedb31SLionel Sambuc   begin
65*44bedb31SLionel Sambuc      return inflateInit2 (strm, windowBits, ZLIB_VERSION, Z_Stream_Size);
66*44bedb31SLionel Sambuc   end Inflate_Init;
67*44bedb31SLionel Sambuc
68*44bedb31SLionel Sambuc   ------------------------
69*44bedb31SLionel Sambuc   -- Last_Error_Message --
70*44bedb31SLionel Sambuc   ------------------------
71*44bedb31SLionel Sambuc
72*44bedb31SLionel Sambuc   function Last_Error_Message (Strm : in Z_Stream) return String is
73*44bedb31SLionel Sambuc      use Interfaces.C.Strings;
74*44bedb31SLionel Sambuc   begin
75*44bedb31SLionel Sambuc      if Strm.msg = Null_Ptr then
76*44bedb31SLionel Sambuc         return "";
77*44bedb31SLionel Sambuc      else
78*44bedb31SLionel Sambuc         return Value (Strm.msg);
79*44bedb31SLionel Sambuc      end if;
80*44bedb31SLionel Sambuc   end Last_Error_Message;
81*44bedb31SLionel Sambuc
82*44bedb31SLionel Sambuc   ------------
83*44bedb31SLionel Sambuc   -- Set_In --
84*44bedb31SLionel Sambuc   ------------
85*44bedb31SLionel Sambuc
86*44bedb31SLionel Sambuc   procedure Set_In
87*44bedb31SLionel Sambuc     (Strm   : in out Z_Stream;
88*44bedb31SLionel Sambuc      Buffer : in     Voidp;
89*44bedb31SLionel Sambuc      Size   : in     UInt) is
90*44bedb31SLionel Sambuc   begin
91*44bedb31SLionel Sambuc      Strm.Next_In  := Buffer;
92*44bedb31SLionel Sambuc      Strm.Avail_In := Size;
93*44bedb31SLionel Sambuc   end Set_In;
94*44bedb31SLionel Sambuc
95*44bedb31SLionel Sambuc   ------------------
96*44bedb31SLionel Sambuc   -- Set_Mem_Func --
97*44bedb31SLionel Sambuc   ------------------
98*44bedb31SLionel Sambuc
99*44bedb31SLionel Sambuc   procedure Set_Mem_Func
100*44bedb31SLionel Sambuc     (Strm   : in out Z_Stream;
101*44bedb31SLionel Sambuc      Opaque : in     Voidp;
102*44bedb31SLionel Sambuc      Alloc  : in     alloc_func;
103*44bedb31SLionel Sambuc      Free   : in     free_func) is
104*44bedb31SLionel Sambuc   begin
105*44bedb31SLionel Sambuc      Strm.opaque := Opaque;
106*44bedb31SLionel Sambuc      Strm.zalloc := Alloc;
107*44bedb31SLionel Sambuc      Strm.zfree  := Free;
108*44bedb31SLionel Sambuc   end Set_Mem_Func;
109*44bedb31SLionel Sambuc
110*44bedb31SLionel Sambuc   -------------
111*44bedb31SLionel Sambuc   -- Set_Out --
112*44bedb31SLionel Sambuc   -------------
113*44bedb31SLionel Sambuc
114*44bedb31SLionel Sambuc   procedure Set_Out
115*44bedb31SLionel Sambuc     (Strm   : in out Z_Stream;
116*44bedb31SLionel Sambuc      Buffer : in     Voidp;
117*44bedb31SLionel Sambuc      Size   : in     UInt) is
118*44bedb31SLionel Sambuc   begin
119*44bedb31SLionel Sambuc      Strm.Next_Out  := Buffer;
120*44bedb31SLionel Sambuc      Strm.Avail_Out := Size;
121*44bedb31SLionel Sambuc   end Set_Out;
122*44bedb31SLionel Sambuc
123*44bedb31SLionel Sambuc   --------------
124*44bedb31SLionel Sambuc   -- Total_In --
125*44bedb31SLionel Sambuc   --------------
126*44bedb31SLionel Sambuc
127*44bedb31SLionel Sambuc   function Total_In (Strm : in Z_Stream) return ULong is
128*44bedb31SLionel Sambuc   begin
129*44bedb31SLionel Sambuc      return Strm.Total_In;
130*44bedb31SLionel Sambuc   end Total_In;
131*44bedb31SLionel Sambuc
132*44bedb31SLionel Sambuc   ---------------
133*44bedb31SLionel Sambuc   -- Total_Out --
134*44bedb31SLionel Sambuc   ---------------
135*44bedb31SLionel Sambuc
136*44bedb31SLionel Sambuc   function Total_Out (Strm : in Z_Stream) return ULong is
137*44bedb31SLionel Sambuc   begin
138*44bedb31SLionel Sambuc      return Strm.Total_Out;
139*44bedb31SLionel Sambuc   end Total_Out;
140*44bedb31SLionel Sambuc
141*44bedb31SLionel Sambucend ZLib.Thin;
142