posix file: Add procedure to query the size of a file

Change-Id: Ib3b31e90ca98dc09185463ce467a70770e0f222d
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/21095
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
Nico Huber
2017-08-18 17:38:55 +02:00
parent 81294ed049
commit def89ebc05
2 changed files with 19 additions and 0 deletions

View File

@@ -14,6 +14,7 @@
with Interfaces.C;
with Interfaces.C.Strings;
with Ada.Directories;
with HW.Debug;
@@ -68,4 +69,18 @@ package body HW.File is
pragma Debug (not Success, Debug.New_Line);
end Map;
procedure Size (Length : out Natural; Path : String)
with
SPARK_Mode => Off
is
use type Ada.Directories.File_Size;
Res_Size : Ada.Directories.File_Size;
begin
Res_Size := Ada.Directories.Size (Path);
Length := Natural (Res_Size);
exception
when others =>
Length := 0;
end Size;
end HW.File;

View File

@@ -39,4 +39,8 @@ package HW.File is
Pre => (Readable or Writable) and
(if Map_Copy then Readable and not Writable);
-- Sets `Length` to the size of the file given by `Path` or 0 if an
-- error occurs.
procedure Size (Length : out Natural; Path : String);
end HW.File;