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;
