summaryrefslogtreecommitdiff
path: root/gcc/ada/5zinterr.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/5zinterr.adb')
-rw-r--r--gcc/ada/5zinterr.adb35
1 files changed, 21 insertions, 14 deletions
diff --git a/gcc/ada/5zinterr.adb b/gcc/ada/5zinterr.adb
index 03a724a83df..674c08f3322 100644
--- a/gcc/ada/5zinterr.adb
+++ b/gcc/ada/5zinterr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2002, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2003, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -27,7 +27,7 @@
-- covered by the GNU Public License. --
-- --
-- GNARL was developed by the GNARL team at Florida State University. --
--- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- Extensive contributions were provided by Ada Core Technologies, Inc. --
-- --
------------------------------------------------------------------------------
@@ -77,6 +77,9 @@ with Ada.Task_Identification;
with Ada.Exceptions;
-- used for Raise_Exception
+with System.Interrupt_Management;
+-- used for Reserve
+
with System.Task_Primitives.Operations;
-- used for Write_Lock
-- Unlock
@@ -109,7 +112,6 @@ package body System.Interrupts is
use Tasking;
use Ada.Exceptions;
- package PRI renames System.Task_Primitives;
package POP renames System.Task_Primitives.Operations;
function To_Ada is new Unchecked_Conversion
@@ -447,13 +449,21 @@ package body System.Interrupts is
-------------------------------------
function Has_Interrupt_Or_Attach_Handler
- (Object : access Dynamic_Interrupt_Protection) return Boolean is
+ (Object : access Dynamic_Interrupt_Protection)
+ return Boolean
+ is
+ pragma Unreferenced (Object);
+
begin
return True;
end Has_Interrupt_Or_Attach_Handler;
function Has_Interrupt_Or_Attach_Handler
- (Object : access Static_Interrupt_Protection) return Boolean is
+ (Object : access Static_Interrupt_Protection)
+ return Boolean
+ is
+ pragma Unreferenced (Object);
+
begin
return True;
end Has_Interrupt_Or_Attach_Handler;
@@ -617,8 +627,9 @@ package body System.Interrupts is
-----------------
function Is_Reserved (Interrupt : Interrupt_ID) return Boolean is
+ use System.Interrupt_Management;
begin
- return False;
+ return Reserve (System.Interrupt_Management.Interrupt_ID (Interrupt));
end Is_Reserved;
----------------------
@@ -737,11 +748,6 @@ package body System.Interrupts is
-----------------------
task body Interrupt_Manager is
- ---------------------
- -- Local Variables --
- ---------------------
-
- Self_Id : constant Task_ID := POP.Self;
--------------------
-- Local Routines --
@@ -991,7 +997,7 @@ package body System.Interrupts is
"A binding for this interrupt is already present");
end if;
- User_Entry (Interrupt) := Entry_Assoc' (T => T, E => E);
+ User_Entry (Interrupt) := Entry_Assoc'(T => T, E => E);
-- Indicate the attachment of interrupt entry in the ATCB.
-- This is needed so when an interrupt entry task terminates
@@ -1022,8 +1028,9 @@ package body System.Interrupts is
for Int in Interrupt_ID'Range loop
if not Is_Reserved (Int) then
if User_Entry (Int).T = T then
- User_Entry (Int) := Entry_Assoc'
- (T => Null_Task, E => Null_Task_Entry);
+ User_Entry (Int) :=
+ Entry_Assoc'
+ (T => Null_Task, E => Null_Task_Entry);
Unbind_Handler (Int);
end if;
end if;