D.14.3 Execution Time of Interrupt Handlers
1/3
{
AI05-0170-1}
This clause describes a language-defined package
to measure the execution time of interrupt handlers.
Static Semantics
2/3
{
AI05-0170-1}
The following language-defined library package
exists:
3/3
with Ada.Interrupts;
package Ada.Execution_Time.Interrupts 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
{
AI05-0170-1}
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.
4.a/3
Discussion: The
implementation-defined mechanism here is the same as that covered by
the Documentation Requirements of D.14, so
we don't repeat that requirement here.
5/3
{
AI05-0170-1}
For each interrupt, the execution time value is
initially set to zero.
Dynamic Semantics
6/3
{
AI05-0170-1}
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
{
AI05-0170-1}
{
AI05-0264-1}
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).
Extensions to Ada 2005
7.a/3
{
AI05-0170-1}
The package Execution_Time.Interrupts
is new.
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe