blob: a00e0a460b8afe10bec4cbe944c19107aeb4b08f [file] [log] [blame]
with System;
with Interfaces;
with Interfaces.C;
with Interfaces.C.Strings;
with FS.FILO.Dev;
with FS.FILO.VFS;
use Interfaces.C;
package body FS.FILO.Ext2 is
function Is_Mounted (State : T) return Boolean is (State.S >= Mounted);
function Is_Open (State : T) return Boolean is (State.S = File_Opened);
procedure Mount
(State : in out T;
Part_Len : in Partition_Length;
Success : out Boolean)
is
begin
Success := False;
end Mount;
procedure Open
(State : in out T;
File_Len : out File_Length;
File_Path : in String;
Success : out Boolean)
is
begin
File_Len := 0;
Success := False;
end Open;
procedure Close (State : in out T) is
begin
State.S := Mounted;
end Close;
procedure Read
(State : in out T;
File_Len : in File_Length;
File_Pos : in out File_Offset;
Buf : out Buffer_Type;
Len : out Natural)
is
begin
Buf := (others => 0);
Len := 0;
end Read;
package C is new VFS (T => T, Initial => (S => Unmounted));
function C_Mount return int
with
Export,
Convention => C,
External_Name => "ext2fs_mount";
function C_Mount return int
with
SPARK_Mode => Off
is
begin
return C.C_Mount;
end C_Mount;
function C_Open (File_Path : Strings.chars_ptr) return int
with
Export,
Convention => C,
External_Name => "ext2fs_dir";
function C_Open (File_Path : Strings.chars_ptr) return int
with
SPARK_Mode => Off
is
begin
return C.C_Open (File_Path);
end C_Open;
function C_Read (Buf : System.Address; Len : int) return int
with
Export,
Convention => C,
External_Name => "ext2fs_read";
function C_Read (Buf : System.Address; Len : int) return int
with
SPARK_Mode => Off
is
begin
return C.C_Read (Buf, Len);
end C_Read;
end FS.FILO.Ext2;