77 lines
1.9 KiB
Ada
77 lines
1.9 KiB
Ada
|
--
|
||
|
-- Copyright (C) 2015-2016 secunet Security Networks AG
|
||
|
--
|
||
|
-- This program is free software; you can redistribute it and/or modify
|
||
|
-- it under the terms of the GNU General Public License as published by
|
||
|
-- the Free Software Foundation; either version 2 of the License, or
|
||
|
-- (at your option) any later version.
|
||
|
--
|
||
|
-- This program is distributed in the hope that it will be useful,
|
||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
-- GNU General Public License for more details.
|
||
|
--
|
||
|
|
||
|
package HW.Time
|
||
|
with Abstract_State => (State with External => Async_Writers)
|
||
|
is
|
||
|
|
||
|
type T is private;
|
||
|
|
||
|
function Now return T
|
||
|
with
|
||
|
Volatile_Function,
|
||
|
Global => (Input => State);
|
||
|
|
||
|
function US_From_Now (US : Natural) return T
|
||
|
with
|
||
|
Volatile_Function,
|
||
|
Global => (Input => State);
|
||
|
|
||
|
function MS_From_Now (MS : Natural) return T
|
||
|
with
|
||
|
Volatile_Function,
|
||
|
Global => (Input => State);
|
||
|
|
||
|
function Now_US return Int64
|
||
|
with
|
||
|
Volatile_Function,
|
||
|
Global => (Input => State);
|
||
|
|
||
|
----------------------------------------------------------------------------
|
||
|
|
||
|
pragma Warnings
|
||
|
(GNATprove, Off, "subprogram ""*Delay*"" has no effect",
|
||
|
Reason => "No effect on dataflow but time always passes.");
|
||
|
|
||
|
-- Delay execution until Deadline has been reached.
|
||
|
procedure Delay_Until (Deadline : T)
|
||
|
with
|
||
|
Global => (Input => State);
|
||
|
|
||
|
procedure U_Delay (US : Natural)
|
||
|
with
|
||
|
Global => (Input => State);
|
||
|
|
||
|
procedure M_Delay (MS : Natural)
|
||
|
with
|
||
|
Global => (Input => State);
|
||
|
|
||
|
pragma Warnings
|
||
|
(GNATprove, On, "subprogram ""*Delay*"" has no effect");
|
||
|
|
||
|
----------------------------------------------------------------------------
|
||
|
|
||
|
function Timed_Out (Deadline : T) return Boolean
|
||
|
with
|
||
|
Volatile_Function,
|
||
|
Global => (Input => State);
|
||
|
|
||
|
private
|
||
|
|
||
|
type T is new Word64;
|
||
|
|
||
|
end HW.Time;
|
||
|
|
||
|
-- vim: set ts=8 sts=3 sw=3 et:
|