Ada Reference Manual (Ada 2022) — Legal Information

# D.14.3 Execution Time of Interrupt Handlers

1/3
This subclause describes a language-defined package to measure the execution time of interrupt handlers.

#### Static Semantics

2/3
The following language-defined library package exists:
3/5
with Ada.Interrupts;
package Ada.Execution_Time.Interrupts
with Nonblocking, Global => in out synchronized is
function Clock (Interrupt : Ada.Interrupts.Interrupt_Id)
return CPU_Time;
function Supported (Interrupt : Ada.Interrupts.Interrupt_Id)
return Boolean;
end Ada.Execution_Time.Interrupts;
4/3
The execution time or CPU time of a given interrupt Interrupt is defined as the time spent by the system executing interrupt handlers identified by Interrupt, including the time spent executing run-time or system services on its behalf. The mechanism used to measure execution time is implementation defined. Time spent executing interrupt handlers is distinct from time spent executing any task.
5/3
For each interrupt, the execution time value is initially set to zero.

#### Dynamic Semantics

6/3
The function Clock returns the current cumulative execution time of the interrupt identified by Interrupt. If Separate_Interrupt_Clocks_Supported is set to False the function raises Program_Error.
7/3
The function Supported returns True if the implementation is monitoring the execution time of the interrupt identified by Interrupt; otherwise, it returns False. For any Interrupt_Id Interrupt for which Supported(Interrupt) returns False, the function Clock(Interrupt) will return a value equal to Ada.Execution_Time.Time_Of(0).

Ada 2005 and 2012 Editions sponsored in part by Ada-Europe