with System;
with Interfaces.C;
with Interfaces.C.Strings;

use Interfaces.C;

generic

   with procedure Mount (Success : out Boolean);

   with procedure Open (File_Path : String; Success : out Boolean);
   with procedure Close with Convention => C;

   with procedure Read (Buf : out Buffer_Type; Len : out Natural);

package FS.FILO.VFS
with
   SPARK_Mode => Off,
   Convention => C
is

   function C_Mount return int;

   function C_Open (File_Path : Strings.chars_ptr) return int;
   procedure C_Close renames Close;
   
   function C_Read (Buf : System.Address; Len : int) return int;

end FS.FILO.VFS;
