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-- This specification is derived from the Ada Reference Manual for use with -- 10-- GNAT. In accordance with the copyright of that document, you can freely -- 11-- copy and modify this specification, provided that if you redistribute a -- 12-- modified version, any changes that you have made are clearly indicated. -- 13-- -- 14------------------------------------------------------------------------------ 15 16-- This unit is not implemented in typical GNAT implementations that lie on 17-- top of operating systems, because it is infeasible to implement in such 18-- environments. 19 20-- If a target environment provides appropriate support for this package 21-- then the Unimplemented_Unit pragma should be removed from this spec and 22-- an appropriate body provided. 23 24with Ada.Task_Identification; 25with Ada.Real_Time; 26 27package Ada.Execution_Time is 28 pragma Preelaborate; 29 30 pragma Unimplemented_Unit; 31 32 type CPU_Time is private; 33 34 CPU_Time_First : constant CPU_Time; 35 CPU_Time_Last : constant CPU_Time; 36 CPU_Time_Unit : constant := 0.000001; 37 CPU_Tick : constant Ada.Real_Time.Time_Span; 38 39 function Clock 40 (T : Ada.Task_Identification.Task_Id := 41 Ada.Task_Identification.Current_Task) 42 return CPU_Time; 43 44 function "+" 45 (Left : CPU_Time; 46 Right : Ada.Real_Time.Time_Span) return CPU_Time; 47 48 function "+" 49 (Left : Ada.Real_Time.Time_Span; 50 Right : CPU_Time) return CPU_Time; 51 52 function "-" 53 (Left : CPU_Time; 54 Right : Ada.Real_Time.Time_Span) return CPU_Time; 55 56 function "-" 57 (Left : CPU_Time; 58 Right : CPU_Time) return Ada.Real_Time.Time_Span; 59 60 function "<" (Left, Right : CPU_Time) return Boolean; 61 function "<=" (Left, Right : CPU_Time) return Boolean; 62 function ">" (Left, Right : CPU_Time) return Boolean; 63 function ">=" (Left, Right : CPU_Time) return Boolean; 64 65 procedure Split 66 (T : CPU_Time; 67 SC : out Ada.Real_Time.Seconds_Count; 68 TS : out Ada.Real_Time.Time_Span); 69 70 function Time_Of 71 (SC : Ada.Real_Time.Seconds_Count; 72 TS : Ada.Real_Time.Time_Span := Ada.Real_Time.Time_Span_Zero) 73 return CPU_Time; 74 75 Interrupt_Clocks_Supported : constant Boolean := False; 76 Separate_Interrupt_Clocks_Supported : constant Boolean := False; 77 78 function Clock_For_Interrupts return CPU_Time; 79 80private 81 82 type CPU_Time is new Ada.Real_Time.Time; 83 84 CPU_Time_First : constant CPU_Time := CPU_Time (Ada.Real_Time.Time_First); 85 CPU_Time_Last : constant CPU_Time := CPU_Time (Ada.Real_Time.Time_Last); 86 87 CPU_Tick : constant Ada.Real_Time.Time_Span := Ada.Real_Time.Tick; 88 89end Ada.Execution_Time; 90