Pragmas Priority and Interrupt_Priority
Author: JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor

Ada Reference Manual — Legal Information

# J.15.11 Pragmas Priority and Interrupt_Priority

#### Syntax

1/3
The form of a pragma Priority is as follows:
2/3
pragma Priority (expression);
3/3
The form of a pragma Interrupt_Priority is as follows:
4/3
pragma Interrupt_Priority [(expression);]

#### Name Resolution Rules

5/3
The expected type for the expression in a Priority or Interrupt_Priority pragma is Integer.

#### Legality Rules

6/3
A Priority pragma is allowed only immediately within a task_definition, a protected_definition, or the declarative_part of a subprogram_body. An Interrupt_Priority pragma is allowed only immediately within a task_definition or a protected_definition.
7/3
For a Priority pragma that appears in the declarative_part of a subprogram_body, the expression shall be static, and its value shall be in the range of System.Priority.

#### Static Semantics

8/3
For an implementation that supports Annex D, a pragma Priority specifies the value of the Priority aspect (see D.1) and a pragma Interrupt_Priority specifies the value of the Interrupt_Priority aspect as follows:
9/3
If the pragma appears in a task_definition, the expression is associated with the aspect for the task type or single_task_declaration that contains the pragma;
10/3
If the pragma appears in a protected_definition, the expression is associated with the aspect for the protected type or single_protected_declaration that contains the pragma;
11/3
If the pragma appears in the declarative_part of a subprogram_body, the expression is associated with the aspect for the subprogram that contains the pragma.
12/3
If there is no expression in an Interrupt_Priority pragma, the Interrupt_Priority aspect has the value Interrupt_Priority'Last.

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