blob: 90978df4394a970d6389cc77042043a371e8b248 [file] [log] [blame]
Nico Huber5e9b1b52016-10-08 22:09:33 +02001--
2-- Copyright (C) 2015-2016 secunet Security Networks AG
3--
4-- This program is free software; you can redistribute it and/or modify
5-- it under the terms of the GNU General Public License as published by
Nico Huberaab715f2016-10-18 00:22:25 +02006-- the Free Software Foundation; either version 2 of the License, or
7-- (at your option) any later version.
Nico Huber5e9b1b52016-10-08 22:09:33 +02008--
9-- This program is distributed in the hope that it will be useful,
10-- but WITHOUT ANY WARRANTY; without even the implied warranty of
11-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12-- GNU General Public License for more details.
13--
14
15private package HW.Time.Timer
16 with
Nico Hubera6a49092018-05-18 15:04:12 +020017 Abstract_State => ((Timer_State with
18 Part_Of => HW.Time.State,
19 External => Async_Writers),
Nico Huber5e9b1b52016-10-08 22:09:33 +020020 (Abstract_Time with
21 Part_Of => HW.Time.State,
Nico Hubera6a49092018-05-18 15:04:12 +020022 External => Async_Writers))
Nico Huber5e9b1b52016-10-08 22:09:33 +020023is
24
25 -- Returns the highest point in time that has definitely passed.
26 function Raw_Value_Min return T
27 with
28 Volatile_Function,
29 Global => (Input => Abstract_Time),
30 Depends => (Raw_Value_Min'Result => Abstract_Time);
31
32 -- Returns the highest point in time that might have been reached yet.
33 function Raw_Value_Max return T
34 with
35 Volatile_Function,
36 Global => (Input => Abstract_Time),
37 Depends => (Raw_Value_Max'Result => Abstract_Time);
38
39 function Hz return T
40 with
Nico Hubera6a49092018-05-18 15:04:12 +020041 Volatile_Function,
Nico Huber5e9b1b52016-10-08 22:09:33 +020042 Global => (Input => Timer_State);
43
44end HW.Time.Timer;