1------------------------------------------------------------------------------
2--                                                                          --
3--                  GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                --
4--                                                                          --
5--                     S Y S T E M . I N T E R R U P T S                    --
6--                                                                          --
7--                                  B o d y                                 --
8--                                                                          --
9--             Copyright (C) 1991-1994, Florida State University            --
10--                     Copyright (C) 1995-2010, AdaCore                     --
11--                                                                          --
12-- GNAT is free software;  you can  redistribute it  and/or modify it under --
13-- terms of the  GNU General Public License as published  by the Free Soft- --
14-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
15-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
16-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
17-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
18--                                                                          --
19-- As a special exception under Section 7 of GPL version 3, you are granted --
20-- additional permissions described in the GCC Runtime Library Exception,   --
21-- version 3.1, as published by the Free Software Foundation.               --
22--                                                                          --
23-- You should have received a copy of the GNU General Public License and    --
24-- a copy of the GCC Runtime Library Exception along with this program;     --
25-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
26-- <http://www.gnu.org/licenses/>.                                          --
27--                                                                          --
28-- GNARL was developed by the GNARL team at Florida State University.       --
29-- Extensive contributions were provided by Ada Core Technologies, Inc.     --
30--                                                                          --
31------------------------------------------------------------------------------
32
33--  This version is for systems that do not support interrupts (or signals)
34
35package body System.Interrupts is
36
37   pragma Warnings (Off); -- kill warnings on unreferenced formals
38
39   use System.Tasking;
40
41   -----------------------
42   -- Local Subprograms --
43   -----------------------
44
45   procedure Unimplemented;
46   --  This procedure raises a Program_Error with an appropriate message
47   --  indicating that an unimplemented feature has been used.
48
49   --------------------
50   -- Attach_Handler --
51   --------------------
52
53   procedure Attach_Handler
54     (New_Handler : Parameterless_Handler;
55      Interrupt   : Interrupt_ID;
56      Static      : Boolean := False)
57   is
58   begin
59      Unimplemented;
60   end Attach_Handler;
61
62   -----------------------------
63   -- Bind_Interrupt_To_Entry --
64   -----------------------------
65
66   procedure Bind_Interrupt_To_Entry
67     (T       : Task_Id;
68      E       : Task_Entry_Index;
69      Int_Ref : System.Address)
70   is
71   begin
72      Unimplemented;
73   end Bind_Interrupt_To_Entry;
74
75   ---------------------
76   -- Block_Interrupt --
77   ---------------------
78
79   procedure Block_Interrupt (Interrupt : Interrupt_ID) is
80   begin
81      Unimplemented;
82   end Block_Interrupt;
83
84   ---------------------
85   -- Current_Handler --
86   ---------------------
87
88   function Current_Handler
89     (Interrupt : Interrupt_ID) return Parameterless_Handler
90   is
91   begin
92      Unimplemented;
93      return null;
94   end Current_Handler;
95
96   --------------------
97   -- Detach_Handler --
98   --------------------
99
100   procedure Detach_Handler
101     (Interrupt : Interrupt_ID;
102      Static    : Boolean := False)
103   is
104   begin
105      Unimplemented;
106   end Detach_Handler;
107
108   ------------------------------
109   -- Detach_Interrupt_Entries --
110   ------------------------------
111
112   procedure Detach_Interrupt_Entries (T : Task_Id) is
113   begin
114      Unimplemented;
115   end Detach_Interrupt_Entries;
116
117   ----------------------
118   -- Exchange_Handler --
119   ----------------------
120
121   procedure Exchange_Handler
122     (Old_Handler : out Parameterless_Handler;
123      New_Handler : Parameterless_Handler;
124      Interrupt   : Interrupt_ID;
125      Static      : Boolean := False)
126   is
127   begin
128      Old_Handler := null;
129      Unimplemented;
130   end Exchange_Handler;
131
132   --------------
133   -- Finalize --
134   --------------
135
136   procedure Finalize (Object : in out Static_Interrupt_Protection) is
137   begin
138      Unimplemented;
139   end Finalize;
140
141   -------------------------------------
142   -- Has_Interrupt_Or_Attach_Handler --
143   -------------------------------------
144
145   function Has_Interrupt_Or_Attach_Handler
146     (Object : access Dynamic_Interrupt_Protection)
147      return   Boolean
148   is
149      pragma Warnings (Off, Object);
150   begin
151      Unimplemented;
152      return True;
153   end Has_Interrupt_Or_Attach_Handler;
154
155   function Has_Interrupt_Or_Attach_Handler
156     (Object : access Static_Interrupt_Protection)
157      return   Boolean
158   is
159      pragma Warnings (Off, Object);
160   begin
161      Unimplemented;
162      return True;
163   end Has_Interrupt_Or_Attach_Handler;
164
165   ----------------------
166   -- Ignore_Interrupt --
167   ----------------------
168
169   procedure Ignore_Interrupt (Interrupt : Interrupt_ID) is
170   begin
171      Unimplemented;
172   end Ignore_Interrupt;
173
174   ----------------------
175   -- Install_Handlers --
176   ----------------------
177
178   procedure Install_Handlers
179     (Object       : access Static_Interrupt_Protection;
180      New_Handlers : New_Handler_Array)
181   is
182   begin
183      Unimplemented;
184   end Install_Handlers;
185
186   ---------------------------------
187   -- Install_Restricted_Handlers --
188   ---------------------------------
189
190   procedure Install_Restricted_Handlers (Handlers : New_Handler_Array) is
191   begin
192      Unimplemented;
193   end Install_Restricted_Handlers;
194
195   ----------------
196   -- Is_Blocked --
197   ----------------
198
199   function Is_Blocked (Interrupt : Interrupt_ID) return Boolean is
200   begin
201      Unimplemented;
202      return True;
203   end Is_Blocked;
204
205   -----------------------
206   -- Is_Entry_Attached --
207   -----------------------
208
209   function Is_Entry_Attached (Interrupt : Interrupt_ID) return Boolean is
210   begin
211      Unimplemented;
212      return True;
213   end Is_Entry_Attached;
214
215   -------------------------
216   -- Is_Handler_Attached --
217   -------------------------
218
219   function Is_Handler_Attached (Interrupt : Interrupt_ID) return Boolean is
220   begin
221      Unimplemented;
222      return True;
223   end Is_Handler_Attached;
224
225   ----------------
226   -- Is_Ignored --
227   ----------------
228
229   function Is_Ignored (Interrupt : Interrupt_ID) return Boolean is
230   begin
231      Unimplemented;
232      return True;
233   end Is_Ignored;
234
235   -----------------
236   -- Is_Reserved --
237   -----------------
238
239   function Is_Reserved (Interrupt : Interrupt_ID) return Boolean is
240   begin
241      Unimplemented;
242      return True;
243   end Is_Reserved;
244
245   ---------------
246   -- Reference --
247   ---------------
248
249   function Reference (Interrupt : Interrupt_ID) return System.Address is
250   begin
251      Unimplemented;
252      return Interrupt'Address;
253   end Reference;
254
255   --------------------------------
256   -- Register_Interrupt_Handler --
257   --------------------------------
258
259   procedure Register_Interrupt_Handler
260     (Handler_Addr : System.Address)
261   is
262   begin
263      Unimplemented;
264   end Register_Interrupt_Handler;
265
266   -----------------------
267   -- Unblock_Interrupt --
268   -----------------------
269
270   procedure Unblock_Interrupt (Interrupt : Interrupt_ID) is
271   begin
272      Unimplemented;
273   end Unblock_Interrupt;
274
275   ------------------
276   -- Unblocked_By --
277   ------------------
278
279   function Unblocked_By (Interrupt : Interrupt_ID)
280     return System.Tasking.Task_Id is
281   begin
282      Unimplemented;
283      return null;
284   end Unblocked_By;
285
286   ------------------------
287   -- Unignore_Interrupt --
288   ------------------------
289
290   procedure Unignore_Interrupt (Interrupt : Interrupt_ID) is
291   begin
292      Unimplemented;
293   end Unignore_Interrupt;
294
295   -------------------
296   -- Unimplemented; --
297   -------------------
298
299   procedure Unimplemented is
300   begin
301      raise Program_Error with "interrupts/signals not implemented";
302   end Unimplemented;
303
304end System.Interrupts;
305