File: /home/oboss/Users/gec/sources/Basic_Services/Containers/interrupt_queue.ads

1     --% Compilation Unit:	Interrupt_Queue
2     --
3     --% Category: Generic Package Declaration
4     --
5     --% Release:  $Name:  $
6     --
7     --% Version:  $Revision: 2.0 $
8     --
9     --% Author:   $Author: gec $
10     --
11     --% Revision Log:
12     --    $Log: interrupt_queue.ads,v $
13     --    Revision 2.0  2003/04/04 08:49:55  gec
14     --    Initial release of source files serving as baseline for OBOSS-III project.
15     --
16     --    Revision 1.1.1.1  2003/04/04 08:13:00  gec
17     --    Imported using TkCVS
18     --
19     --
20     --
21     --% Project: OBOSS
22     --
23     --% Copyright (C) 2003 by Terma A/S
24     --  Proprietary and intellectual rights of Terma A/S, Denmark,
25     --  are involved in the subject-matter of this material and
26     --  all manufacturing, reproduction, use, disclosure, and
27     --  sales rights pertaining to such subject-matter are
28     --  expressly reserved. This material is submitted for a
29     --  specific purpose as agreed, and the recipient by
30     --  accepting this material agrees that this material will
31     --  not be used, copied, or reproduced in whole or in part
32     --  nor its contents revealed in any manner or to any person,
33     --  except to meet the purpose for which it was submitted and
34     --  subject to the terms of the agreement.
35     --
36     --% Target Dependencies:
37     --    None
38     --% Compiler Dependencies:
39     --    None
40     with Ada.Interrupts;
41     
42     with Task_Priority_Control;
43     
44     generic
45     
46        -- Priority of protected object implementing interrupt queue
47        Interrupt_Queue_Priority : in  Task_Priority_Control.Interrupt_Task_Priority;
48     
49        -- Interrupt level
50        Interrupt_Level : in Ada.Interrupts.Interrupt_ID;
51     
52     package Interrupt_Queue is
53     
54        --~-----------------------------------------------------------------------------
55     
56        protected Handler is
57           -- pragma Interrupt_Priority (Integer (Interrupt_Queue_Priority));
58           pragma Interrupt_Priority (Interrupt_Queue_Priority);
59           procedure Signal;
60           entry Wait;
61           pragma Attach_Handler
62             (Signal, Interrupt_Level);
63        private
64           Barrier : Boolean := False;
65        end Handler;
66     
67        --~-----------------------------------------------------------------------------
68     
69     end Interrupt_Queue;
70     
71