ext2: Adjust inode version of Open() to ease proof
diff --git a/src/filo-fs-ext2.ads b/src/filo-fs-ext2.ads
index bbf959b..6003198 100644
--- a/src/filo-fs-ext2.ads
+++ b/src/filo-fs-ext2.ads
@@ -71,7 +71,8 @@
with
Object_Size => (Inode_Extents_Index'Last + 1) * 8;
- type Inode_Index is new Unsigned_32 range 2 .. Unsigned_32'Last;
+ type Inode_0_Index is new Unsigned_32;
+ subtype Inode_Index is Inode_0_Index range 2 .. Inode_0_Index'Last;
subtype Inode_Size is Positive range 128 .. Positive (Unsigned_16'Last);
subtype Desc_Size is Positive range 32 .. 2 ** 15; -- power-of-2 that fits in 16 bits
@@ -86,12 +87,13 @@
Inline : Inode_Extents := (others => 16#00#);
end record;
- type Group_Index is new Natural range 0 .. Natural (Inode_Index'Last / 2);
+ type Group_Index is new Inode_0_Index;
subtype Group_In_Block_Count is Group_Index
range 1 .. Group_Index (Block_Size'Last / Desc_Size'First);
type Desc_In_Block_Index is new Natural range 0 .. Natural (Group_In_Block_Count'Last - 1);
- type Inode_In_Group_Index is new Natural range 0 .. Natural (Inode_Index'Last / 2);
+ subtype Inode_In_Group_Count is Inode_0_Index range 1 .. Inode_0_Index'Last;
+ type Inode_In_Group_Index is new Inode_0_Index range 0 .. Inode_In_Group_Count'Last - 1;
subtype Inode_In_Block_Count is Inode_In_Group_Index
range 1 .. Inode_In_Group_Index (Block_Size'Last / Inode_Size'First);
type Inode_In_Block_Index is new Natural range 0 .. Natural (Inode_In_Block_Count'Last - 1);
@@ -101,7 +103,7 @@
First_Data_Block : Unsigned_32 := Unsigned_32'First;
Block_Size_Bits : Log_Block_Size := Log_Block_Size'First;
Block_Size : Ext2.Block_Size := Ext2.Block_Size'First;
- Inodes_Per_Group : Inode_Index := Inode_Index'First;
+ Inodes_Per_Group : Inode_In_Group_Count := Inode_In_Group_Count'First;
Inode_Size : Ext2.Inode_Size := Ext2.Inode_Size'First;
Inodes_Per_Block : Inode_In_Block_Count := Inode_In_Block_Count'First;
Desc_Size : Ext2.Desc_Size := Ext2.Desc_Size'First;