summaryrefslogtreecommitdiff
path: root/gcc/ada/s-intman-vxworks.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/s-intman-vxworks.ads')
-rw-r--r--gcc/ada/s-intman-vxworks.ads15
1 files changed, 6 insertions, 9 deletions
diff --git a/gcc/ada/s-intman-vxworks.ads b/gcc/ada/s-intman-vxworks.ads
index 6a9d5e5e22d..14ceb91a28e 100644
--- a/gcc/ada/s-intman-vxworks.ads
+++ b/gcc/ada/s-intman-vxworks.ads
@@ -40,13 +40,6 @@
-- Unlike the original design, System.Interrupt_Management can only
-- be used for tasking systems.
--- PLEASE DO NOT remove the Elaborate_Body pragma from this package.
--- Elaboration of this package should happen early, as most other
--- initializations depend on it. Forcing immediate elaboration of
--- the body also helps to enforce the design assumption that this
--- is a second-level package, just one level above System.OS_Interface
--- with no cross-dependencies.
-
-- PLEASE DO NOT put any subprogram declarations with arguments of
-- type Interrupt_ID into the visible part of this package. The type
-- Interrupt_ID is used to derive the type in Ada.Interrupts, and
@@ -61,8 +54,7 @@ with Interfaces.C;
-- used for int
package System.Interrupt_Management is
-
- pragma Elaborate_Body;
+ pragma Preelaborate;
type Interrupt_Mask is limited private;
@@ -114,6 +106,11 @@ package System.Interrupt_Management is
-- This procedure is used to initialize signal-to-exception mapping in
-- each task.
+ procedure Initialize;
+ -- Initialize the various variables defined in this package.
+ -- This procedure must be called before accessing any object from this
+ -- package and can be called multiple times.
+
private
type Interrupt_Mask is new System.OS_Interface.sigset_t;
-- In some implementation Interrupt_Mask can be represented as a linked