with Interfaces.C;
with System;

package FS.FILO.Dev is

   Procedure Read
      (Buffer  : in out Buffer_Type;
       Offset  : in     Natural;
       Success :    out Boolean);

private

   function C_devread
      (sector : Interfaces.C.unsigned_long;
       byte_offset : Interfaces.C.unsigned_long;
       byte_len : Interfaces.C.unsigned_long;
       buf : System.Address)
      return Interfaces.C.int
      with
         SPARK_Mode => Off,
         Import => True,
         Convention => C,
         External_Name => "devopen";
   

end FS.FILO.Dev;
