Nico Huber has uploaded this change for review. ( https://review.coreboot.org/21095
Change subject: posix file: Add procedure to query the size of a file ......................................................................
posix file: Add procedure to query the size of a file
Change-Id: Ib3b31e90ca98dc09185463ce467a70770e0f222d Signed-off-by: Nico Huber nico.h@gmx.de --- M ada/posix/hw-file.adb M common/hw-file.ads 2 files changed, 19 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/libhwbase refs/changes/95/21095/1
diff --git a/ada/posix/hw-file.adb b/ada/posix/hw-file.adb index e2384be..dd9d7f3 100644 --- a/ada/posix/hw-file.adb +++ b/ada/posix/hw-file.adb @@ -14,6 +14,7 @@
with Interfaces.C; with Interfaces.C.Strings; +with Ada.Directories;
with HW.Debug;
@@ -68,4 +69,18 @@ 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; diff --git a/common/hw-file.ads b/common/hw-file.ads index 9dbfcf7..bc2242c 100644 --- a/common/hw-file.ads +++ b/common/hw-file.ads @@ -39,4 +39,8 @@ 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;