FS.FILO.Ext2: Export C functions
diff --git a/src/fs-filo-ext2.adb b/src/fs-filo-ext2.adb
index 730cd11..a00e0a4 100644
--- a/src/fs-filo-ext2.adb
+++ b/src/fs-filo-ext2.adb
@@ -1,6 +1,12 @@
+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
@@ -44,4 +50,45 @@
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;