OSDN Git Service

2007-04-20 Vincent Celier <celier@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / a-reatim.ads
index 563565b..ae87c0a 100644 (file)
@@ -6,9 +6,7 @@
 --                                                                          --
 --                                  S p e c                                 --
 --                                                                          --
---                             $Revision$
---                                                                          --
---          Copyright (C) 1992-2001 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -22,8 +20,8 @@
 -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
 -- for  more details.  You should have  received  a copy of the GNU General --
 -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
--- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
--- MA 02111-1307, USA.                                                      --
+-- to  the  Free Software Foundation,  51  Franklin  Street,  Fifth  Floor, --
+-- Boston, MA 02110-1301, USA.                                              --
 --                                                                          --
 -- As a special exception,  if other files  instantiate  generics from this --
 -- unit, or you link  this unit with other files  to produce an executable, --
@@ -33,7 +31,7 @@
 -- covered by the  GNU Public License.                                      --
 --                                                                          --
 -- GNAT was originally developed  by the GNAT team at  New York University. --
--- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
 --                                                                          --
 ------------------------------------------------------------------------------
 
@@ -49,9 +47,9 @@ package Ada.Real_Time is
 
    type Time_Span is private;
    Time_Span_First : constant Time_Span;
-   Time_Span_Last  :  constant Time_Span;
-   Time_Span_Zero  :  constant Time_Span;
-   Time_Span_Unit  :  constant Time_Span;
+   Time_Span_Last  : constant Time_Span;
+   Time_Span_Zero  : constant Time_Span;
+   Time_Span_Unit  : constant Time_Span;
 
    Tick : constant Time_Span;
    function Clock return Time;
@@ -88,11 +86,18 @@ package Ada.Real_Time is
    function Microseconds (US : Integer) return Time_Span;
    function Milliseconds (MS : Integer) return Time_Span;
 
-   --  With duration represented as a 64-bit number with a delta of
-   --  10 ** (-9), the number of seconds in Duration'Last does not fit
-   --  in 32 bits.
+   function Seconds (S : Integer) return Time_Span;
+   pragma Ada_05 (Seconds);
+
+   function Minutes (M : Integer) return Time_Span;
+   pragma Ada_05 (Minutes);
 
-   type Seconds_Count is  range -2 ** 63 .. 2 ** 63 - 1;
+   --  Seconds_Count needs 64 bits, since Time has the full range of
+   --  Duration. The delta of Duration is 10 ** (-9), so the maximum
+   --  number of seconds is 2**63/10**9 = 8*10**9 which does not quite
+   --  fit in 32 bits.
+
+   type Seconds_Count is range -2 ** 63 .. 2 ** 63 - 1;
 
    procedure Split (T : Time; SC : out Seconds_Count; TS : out Time_Span);
    function Time_Of (SC : Seconds_Count; TS : Time_Span) return Time;
@@ -127,4 +132,10 @@ private
    pragma Import (Intrinsic, ">=");
    pragma Import (Intrinsic, "abs");
 
+   pragma Inline (Microseconds);
+   pragma Inline (Milliseconds);
+   pragma Inline (Nanoseconds);
+   pragma Inline (Seconds);
+   pragma Inline (Minutes);
+
 end Ada.Real_Time;