Commit c7022038 by Dmitriy Anisimkov Committed by Pierre-Marie de Rodat

[Ada] Conversion routines between GNAT.OS_Lib.OS_Time and long integer

The new routines convert back and forth between private type OS_Time and
a long integer which can be used in package Ada.Calendar.Conversions
routines to convert to Ada.Calendar.Time.

2019-08-19  Dmitriy Anisimkov  <anisimko@adacore.com>

gcc/ada/

	* libgnat/s-os_lib.ads, libgnat/s-os_lib.adb (To_Ada, To_C): New
	routines.

From-SVN: r274661
parent 382b0e97
2019-08-19 Dmitriy Anisimkov <anisimko@adacore.com>
* libgnat/s-os_lib.ads, libgnat/s-os_lib.adb (To_Ada, To_C): New
routines.
2019-08-19 Bob Duff <duff@adacore.com> 2019-08-19 Bob Duff <duff@adacore.com>
* exp_attr.adb (Attribute_Valid): Correct the handling of * exp_attr.adb (Attribute_Valid): Correct the handling of
......
...@@ -2979,6 +2979,15 @@ package body System.OS_Lib is ...@@ -2979,6 +2979,15 @@ package body System.OS_Lib is
end loop; end loop;
end Spawn_Internal; end Spawn_Internal;
------------
-- To_Ada --
------------
function To_Ada (Time : time_t) return OS_Time is
begin
return OS_Time (Time);
end To_Ada;
--------------------------- ---------------------------
-- To_Path_String_Access -- -- To_Path_String_Access --
--------------------------- ---------------------------
...@@ -3008,6 +3017,15 @@ package body System.OS_Lib is ...@@ -3008,6 +3017,15 @@ package body System.OS_Lib is
return Return_Val; return Return_Val;
end To_Path_String_Access; end To_Path_String_Access;
----------
-- To_C --
----------
function To_C (Time : OS_Time) return time_t is
begin
return time_t (Time);
end To_C;
------------------ ------------------
-- Wait_Process -- -- Wait_Process --
------------------ ------------------
......
...@@ -164,6 +164,15 @@ package System.OS_Lib is ...@@ -164,6 +164,15 @@ package System.OS_Lib is
-- component parts to be interpreted in the local time zone, and returns -- component parts to be interpreted in the local time zone, and returns
-- an OS_Time. Returns Invalid_Time if the creation fails. -- an OS_Time. Returns Invalid_Time if the creation fails.
subtype time_t is Long_Integer;
-- C time_t type of the time representation
function To_C (Time : OS_Time) return time_t;
-- Convert OS_Time to C time_t type
function To_Ada (Time : time_t) return OS_Time;
-- Convert C time_t type to OS_Time
---------------- ----------------
-- File Stuff -- -- File Stuff --
---------------- ----------------
...@@ -1107,6 +1116,8 @@ private ...@@ -1107,6 +1116,8 @@ private
pragma Inline (">"); pragma Inline (">");
pragma Inline ("<="); pragma Inline ("<=");
pragma Inline (">="); pragma Inline (">=");
pragma Inline (To_C);
pragma Inline (To_Ada);
type Process_Id is new Integer; type Process_Id is new Integer;
Invalid_Pid : constant Process_Id := -1; Invalid_Pid : constant Process_Id := -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment