Add NullFS
Signed-off-by: Thomas Heijligen <src@posteo.de>
diff --git a/src/filo-fs-nullfs.ads b/src/filo-fs-nullfs.ads
new file mode 100644
index 0000000..5f0bd5b
--- /dev/null
+++ b/src/filo-fs-nullfs.ads
@@ -0,0 +1,66 @@
+with Interfaces.C;
+with Interfaces.C.Strings;
+with System;
+
+package FILO.FS.NullFS is
+ type NullFS_Type is private;
+
+
+ procedure Mount
+ (Item : in out NullFS_Type;
+ Success : out Boolean);
+
+ procedure Open
+ (Item : in out NullFS_Type;
+ Path : in String;
+ Success : out Boolean);
+
+ procedure Read
+ (Item : in out NullFS_Type;
+ Buffer : in out Buffer_Type;
+ Offset : in Natural;
+ Success : out Boolean);
+
+ procedure Close
+ (Item : in out NullFS_Type;
+ Success : out Boolean);
+
+ ---------------------------------------------------------------------
+
+ function C_Mount return Interfaces.C.int
+ with
+ Export,
+ Convention => C,
+ External_Name => "nullfs_mount";
+
+ function C_Read
+ (buf : System.Address;
+ len : Interfaces.C.int)
+ return Interfaces.C.int
+ with
+ Export,
+ Convention => C,
+ External_Name => "nullfs_read";
+
+ function C_Dir
+ (Path : Interfaces.C.Strings.chars_ptr)
+ return Interfaces.C.int
+ with
+ Export,
+ Convention => C,
+ External_Name => "nullfs_dir";
+
+ function C_Close return Interfaces.C.int
+ with
+ Export,
+ Convention => C,
+ External_Name => "nullfs_close";
+
+private
+ type State_Type is (Unmounted, Mounted, File_Open);
+
+ type NullFS_Type is record
+ State : State_Type;
+ end record;
+
+end FILO.FS.NullFS;