FS.FILO: Add access to globals
diff --git a/src/fs-filo.adb b/src/fs-filo.adb
new file mode 100644
index 0000000..f92455e
--- /dev/null
+++ b/src/fs-filo.adb
@@ -0,0 +1,55 @@
+with Interfaces.C;
+
+use Interfaces.C;
+
+package body FS.FILO is
+
+ C_Part_Length : unsigned_long
+ with
+ Import => True,
+ Convention => C,
+ External_Name => "part_length";
+
+ C_File_Max : int
+ with
+ Import => True,
+ Convention => C,
+ External_Name => "filemax";
+
+ C_File_Pos : int
+ with
+ Import => True,
+ Convention => C,
+ External_Name => "filepos";
+
+ function Part_Length return Partition_Length is (Partition_Length (C_Part_Length));
+
+ function File_Max return File_Length is
+ begin
+ if C_File_Max < 0 then
+ return 0;
+ end if;
+
+ return File_Length (C_File_Max);
+ end File_Max;
+
+ procedure Set_File_Max (Len : File_Length) is
+ begin
+ C_File_Max := int (Len);
+ end Set_File_Max;
+
+ function File_Pos return File_Offset is
+ begin
+ if C_File_Pos < 0 then
+ return 0;
+ end if;
+
+ return File_Offset (C_File_Pos);
+ end File_Pos;
+
+ procedure Set_File_Pos (Off : File_Offset) is
+ begin
+ C_File_Pos := int (Off);
+ end Set_File_Pos;
+
+end FS.FILO;