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;