-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2005, AdaCore --
+-- Copyright (C) 1998-2007, AdaCore --
-- --
-- GNAT 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- --
-- array value. Current array values are not affected by this call.
procedure Free;
- -- Free all allocated memory for the table. A call to init is required
+ -- Free all allocated memory for the table. A call to Init is required
-- before any use of this table after calling Free.
First : constant Table_Index_Type := Table_Low_Bound;
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-1997 Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2007, Free Software Foundation, Inc. --
-- --
-- GNAT 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- --
-- --
------------------------------------------------------------------------------
--- GNAT Library browser.
+-- GNAT Library browser
procedure Gnatls;
-- B o d y --
-- --
-- Copyright (C) 1991-1994, Florida State University --
--- Copyright (C) 1995-2006, AdaCore --
+-- Copyright (C) 1995-2007, AdaCore --
-- --
-- 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- --
(Storage_Elements.Integer_Address (SIG_IGN));
for J in Interrupt_ID loop
-
- -- We need to check whether J is in Keep_Unmasked because
- -- the index type of the Keep_Unmasked array is not always
- -- Interrupt_ID; it may be a subtype of Interrupt_ID.
-
- if J in Keep_Unmasked'Range and then Keep_Unmasked (J) then
+ if Keep_Unmasked (J) then
Result := sigaddset (mask'Access, Signal (J));
pragma Assert (Result = 0);
Result := sigdelset (allmask'Access, Signal (J));
Registered_Handler_Tail : R_Link := null;
Access_Hold : Server_Task_Access;
- -- variable used to allocate Server_Task using "new".
+ -- variable used to allocate Server_Task using "new"
-----------------------
-- Local Subprograms --
procedure Register_Interrupt_Handler (Handler_Addr : System.Address) is
New_Node_Ptr : R_Link;
+
begin
-- This routine registers the Handler as usable for Dynamic
-- Interrupt Handler. Routines attaching and detaching Handler
"dynamic Handler");
end if;
- -- The interrupt should no longer be ingnored if
- -- it was ever ignored.
+ -- The interrupt should no longer be ingnored if it was ever ignored
Ignored (Interrupt) := False;
if New_Handler = null then
- -- The null handler means we are detaching the handler.
+ -- The null handler means we are detaching the handler
User_Handler (Interrupt).Static := False;
end if;
end loop;
- -- Indicate in ATCB that no Interrupt Entries are attached.
+ -- Indicate in ATCB that no Interrupt Entries are attached
T.Interrupt_Entry := False;
end Detach_Interrupt_Entries;
System.Tasking.Utilities.Make_Independent;
- -- Install default action in system level.
+ -- Install default action in system level
IMOP.Install_Default_Action (IMNG.Interrupt_ID (Interrupt));
IMOP.Add_To_Interrupt_Mask
(Intwait_Mask'Access, IMNG.Interrupt_ID (Interrupt));
- -- Remember the Interrupt_ID for Abort_Task.
+ -- Remember the Interrupt_ID for Abort_Task
PIO.Set_Interrupt_ID (IMNG.Interrupt_ID (Interrupt), Self_ID);
if User_Handler (Interrupt).H /= null then
Tmp_Handler := User_Handler (Interrupt).H;
- -- RTS calls should not be made with self being locked.
+ -- RTS calls should not be made with self being locked
POP.Unlock (Self_ID);
Tmp_ID := User_Entry (Interrupt).T;
Tmp_Entry_Index := User_Entry (Interrupt).E;
- -- RTS calls should not be made with self being locked.
+ -- RTS calls should not be made with self being locked
POP.Unlock (Self_ID);
-- Elaboration code for package System.Interrupts
begin
-
- -- Get Interrupt_Manager's ID so that Abort_Interrupt can be sent.
+ -- Get Interrupt_Manager's ID so that Abort_Interrupt can be sent
Interrupt_Manager_ID := To_System (Interrupt_Manager'Identity);