all repos — mgba @ 3b353ac62190a00765812938e86e04b753196736

mGBA Game Boy Advance Emulator

src/third-party/zlib/contrib/ada/zlib-thin.adb (view raw)

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