1------------------------------------------------------------------------------ 2-- -- 3-- GNAT RUN-TIME COMPONENTS -- 4-- -- 5-- A D A . E X E C U T I O N _ T I M E -- 6-- -- 7-- S p e c -- 8-- -- 9-- Copyright (C) 2009-2012, Free Software Foundation, Inc. -- 10-- -- 11-- This specification is derived from the Ada Reference Manual for use with -- 12-- GNAT. The copyright notice above, and the license provisions that follow -- 13-- apply solely to the contents of the part following the private keyword. -- 14-- -- 15-- GNAT is free software; you can redistribute it and/or modify it under -- 16-- terms of the GNU General Public License as published by the Free Soft- -- 17-- ware Foundation; either version 3, or (at your option) any later ver- -- 18-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 19-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 20-- or FITNESS FOR A PARTICULAR PURPOSE. -- 21-- -- 22-- As a special exception under Section 7 of GPL version 3, you are granted -- 23-- additional permissions described in the GCC Runtime Library Exception, -- 24-- version 3.1, as published by the Free Software Foundation. -- 25-- -- 26-- You should have received a copy of the GNU General Public License and -- 27-- a copy of the GCC Runtime Library Exception along with this program; -- 28-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- 29-- <http://www.gnu.org/licenses/>. -- 30-- -- 31-- GNAT was originally developed by the GNAT team at New York University. -- 32-- Extensive contributions were provided by Ada Core Technologies Inc. -- 33------------------------------------------------------------------------------ 34 35-- This is the Windows native version of this package 36 37with Ada.Task_Identification; 38with Ada.Real_Time; 39 40package Ada.Execution_Time is 41 42 type CPU_Time is private; 43 44 CPU_Time_First : constant CPU_Time; 45 CPU_Time_Last : constant CPU_Time; 46 CPU_Time_Unit : constant := 0.000001; 47 CPU_Tick : constant Ada.Real_Time.Time_Span; 48 49 function Clock 50 (T : Ada.Task_Identification.Task_Id := 51 Ada.Task_Identification.Current_Task) return CPU_Time; 52 53 function "+" 54 (Left : CPU_Time; 55 Right : Ada.Real_Time.Time_Span) return CPU_Time; 56 57 function "+" 58 (Left : Ada.Real_Time.Time_Span; 59 Right : CPU_Time) return CPU_Time; 60 61 function "-" 62 (Left : CPU_Time; 63 Right : Ada.Real_Time.Time_Span) return CPU_Time; 64 65 function "-" 66 (Left : CPU_Time; 67 Right : CPU_Time) return Ada.Real_Time.Time_Span; 68 69 function "<" (Left, Right : CPU_Time) return Boolean; 70 function "<=" (Left, Right : CPU_Time) return Boolean; 71 function ">" (Left, Right : CPU_Time) return Boolean; 72 function ">=" (Left, Right : CPU_Time) return Boolean; 73 74 procedure Split 75 (T : CPU_Time; 76 SC : out Ada.Real_Time.Seconds_Count; 77 TS : out Ada.Real_Time.Time_Span); 78 79 function Time_Of 80 (SC : Ada.Real_Time.Seconds_Count; 81 TS : Ada.Real_Time.Time_Span := Ada.Real_Time.Time_Span_Zero) 82 return CPU_Time; 83 84 Interrupt_Clocks_Supported : constant Boolean := False; 85 Separate_Interrupt_Clocks_Supported : constant Boolean := False; 86 87 function Clock_For_Interrupts return CPU_Time; 88 89private 90 91 type CPU_Time is new Ada.Real_Time.Time; 92 93 CPU_Time_First : constant CPU_Time := CPU_Time (Ada.Real_Time.Time_First); 94 CPU_Time_Last : constant CPU_Time := CPU_Time (Ada.Real_Time.Time_Last); 95 96 CPU_Tick : constant Ada.Real_Time.Time_Span := Ada.Real_Time.Tick; 97 98 pragma Import (Intrinsic, "<"); 99 pragma Import (Intrinsic, "<="); 100 pragma Import (Intrinsic, ">"); 101 pragma Import (Intrinsic, ">="); 102 103end Ada.Execution_Time; 104