Normally certain interrupts are reserved to the implementation. Any attempt
to attach an interrupt causes Program_Error to be raised, as described in
RM C.3.2(22). A typical example is the SIGINT interrupt used in
many systems for a
Ctrl-C interrupt. Normally this interrupt is
reserved to the implementation, so that
Ctrl-C can be used to
If the pragma Unreserve_All_Interrupts appears anywhere in any unit in
a program, then all such interrupts are unreserved. This allows the
program to handle these interrupts, but disables their standard
functions. For example, if this pragma is used, then pressing
Ctrl-C will not automatically interrupt execution. However,
a program can then handle the SIGINT interrupt as it chooses.
For a full list of the interrupts handled in a specific implementation,
see the source code for the spec of Ada.Interrupts.Names in
a-intnam.ads. This is a target dependent file that contains the
list of interrupts recognized for a given target. The documentation in
this file also specifies what interrupts are affected by the use of
the Unreserve_All_Interrupts pragma.
For a more general facility for controlling what interrupts can be handled, see pragma Interrupt_State, which subsumes the functionality of the Unreserve_All_Interrupts pragma.