blob: 4676815e4bfa1404ccbaa6e83766b7996dfa756f [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
6-- the Free Software Foundation; version 2 of the License.
7--
8-- This program is distributed in the hope that it will be useful,
9-- but WITHOUT ANY WARRANTY; without even the implied warranty of
10-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11-- GNU General Public License for more details.
12--
13
14private package HW.Time.Timer
15 with
16 Abstract_State => ((Timer_State with Part_Of => HW.Time.State),
17 (Abstract_Time with
18 Part_Of => HW.Time.State,
19 External => Async_Writers)),
20 Initializes => (Timer_State)
21is
22
23 -- Returns the highest point in time that has definitely passed.
24 function Raw_Value_Min return T
25 with
26 Volatile_Function,
27 Global => (Input => Abstract_Time),
28 Depends => (Raw_Value_Min'Result => Abstract_Time);
29
30 -- Returns the highest point in time that might have been reached yet.
31 function Raw_Value_Max return T
32 with
33 Volatile_Function,
34 Global => (Input => Abstract_Time),
35 Depends => (Raw_Value_Max'Result => Abstract_Time);
36
37 function Hz return T
38 with
39 Global => (Input => Timer_State);
40
41end HW.Time.Timer;