with Ada.Streams; use Ada.Streams;
package Allegro.Files.Memory is
function Pack_FOpen( mem : access Stream_Element_Array;
consume : Boolean := False ) return A_Packfile;
private
type Memory_Info is
record
mem : access Stream_Element_Array;
offset : Stream_Element_Offset;
consumed : Boolean := False;
end record;
type A_Memory_Info is access all Memory_Info;
pragma No_Strict_Aliasing( A_Memory_Info );
function Mem_pf_close( userdata : Address ) return Integer;
pragma Convention( C, Mem_pf_close );
function Mem_pf_getc( userdata : Address ) return Integer;
pragma Convention( C, Mem_pf_getc );
function Mem_pf_ungetc( c : Integer; userdata : Address ) return Integer;
pragma Convention( C, Mem_pf_ungetc );
function Mem_pf_fread( p : Address;
n : Interfaces.C.long;
userdata : Address ) return Interfaces.C.long;
pragma Convention( C, Mem_pf_fread );
function Mem_pf_putc( c : Integer; userdata : Address ) return Integer;
pragma Convention( C, Mem_pf_putc );
function Mem_pf_fwrite( p : Address;
n : Interfaces.C.long;
userdata : Address ) return Interfaces.C.long;
pragma Convention( C, Mem_pf_fwrite );
function Mem_pf_seek( userdata : Address; offset : Integer ) return Integer;
pragma Convention( C, Mem_pf_seek );
function Mem_pf_feof( userdata : Address ) return Integer;
pragma Convention( C, Mem_pf_feof );
function Mem_pf_ferror( userdata : Address ) return Integer;
pragma Convention( C, Mem_pf_ferror );
end Allegro.Files.Memory;