blob: cfe2e0b9111e1d7286b08163bb58a29ff1478349 [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
17 Abstract_State => ((Timer_State with Part_Of => HW.Time.State),
18 (Abstract_Time with
19 Part_Of => HW.Time.State,
20 External => Async_Writers)),
21 Initializes => (Timer_State)
22is
23
24 -- Returns the highest point in time that has definitely passed.
25 function Raw_Value_Min return T
26 with
27 Volatile_Function,
28 Global => (Input => Abstract_Time),
29 Depends => (Raw_Value_Min'Result => Abstract_Time);
30
31 -- Returns the highest point in time that might have been reached yet.
32 function Raw_Value_Max return T
33 with
34 Volatile_Function,
35 Global => (Input => Abstract_Time),
36 Depends => (Raw_Value_Max'Result => Abstract_Time);
37
38 function Hz return T
39 with
40 Global => (Input => Timer_State);
41
42end HW.Time.Timer;