diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-02 10:13:21 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-02 10:13:21 +0200 |
commit | 806f6d372157633408dc26c7903e43b732710530 (patch) | |
tree | d10af131f48cfe83e17d537c53b5f2c9bdf5aaa6 /gcc/ada/s-inmaop-vxworks.adb | |
parent | 780d052e3446d6bc848a173d70db8b7160d52fa9 (diff) | |
download | gcc-806f6d372157633408dc26c7903e43b732710530.tar.gz |
[multiple changes]
2011-08-02 Javier Miranda <miranda@adacore.com>
* sem_ch6.adb (Can_Override_Operator): New function.
(Verify_Overriding_Indicator): Add missing code to check overriding
indicator in operators. Fixes regression.
(Check_Overriding_Indicator): Minor reformating after replacing the
code that evaluates if the subprogram can override an operator by
invocations to the above new function.
* einfo.adb
(Write_Field26_Name): Add missing code to ensure that, following
the documentation in einfo.ads, this field is not shown as attribute
"Static_Initialization" on non-dispatching functions.
2011-08-02 Jose Ruiz <ruiz@adacore.com>
* sem_res.adb (Resolve_Call): A call to
Ada.Real_Time.Timing_Events.Set_Handler violates restriction
No_Relative_Delay (AI-0211) only when it sets a relative timing event,
i.e., when the second parameter is of type Time_Span.
2011-08-02 Vincent Celier <celier@adacore.com>
* make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
with an archive instead of -L<library dir> -l<library name>.
2011-08-02 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
mark the base types In_Use in addition to making the operations
use_visible.
2011-08-02 Ed Falis <falis@adacore.com>
* init.c: add and setup __gnat_signal_mask for the exception signals
* s-inmaop-vxworks.adb: new file.
* s-intman-vxworks.adb: remove unnecessary initializations and
simplify remaining
* s-intman-vxworks.ads: remove unnecessary variable
* s-taprop-vxworks.adb: simplify signal initialization
From-SVN: r177092
Diffstat (limited to 'gcc/ada/s-inmaop-vxworks.adb')
-rwxr-xr-x | gcc/ada/s-inmaop-vxworks.adb | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/gcc/ada/s-inmaop-vxworks.adb b/gcc/ada/s-inmaop-vxworks.adb new file mode 100755 index 00000000000..fe3b7417120 --- /dev/null +++ b/gcc/ada/s-inmaop-vxworks.adb @@ -0,0 +1,255 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- +-- -- +-- SYSTEM.INTERRUPT_MANAGEMENT.OPERATIONS -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 1991-1994, Florida State University -- +-- Copyright (C) 1995-2010, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNARL was developed by the GNARL team at Florida State University. -- +-- Extensive contributions were provided by Ada Core Technologies, Inc. -- +-- -- +------------------------------------------------------------------------------ + +-- This is a VxWorks version of this package. Many operations are null as this +-- package supports the use of Ada interrupt handling facilities for signals, +-- while those facilities are used for hardware interrupts on these targets. + +with Ada.Exceptions; + +with Interfaces.C; + +with System.OS_Interface; + +package body System.Interrupt_Management.Operations is + + use Ada.Exceptions; + use Interfaces.C; + use System.OS_Interface; + + ---------------------------- + -- Thread_Block_Interrupt -- + ---------------------------- + + procedure Thread_Block_Interrupt + (Interrupt : Interrupt_ID) + is + pragma Unreferenced (Interrupt); + begin + Raise_Exception + (Program_Error'Identity, + "Thread_Block_Interrupt unimplemented"); + end Thread_Block_Interrupt; + + ------------------------------ + -- Thread_Unblock_Interrupt -- + ------------------------------ + + procedure Thread_Unblock_Interrupt + (Interrupt : Interrupt_ID) + is + pragma Unreferenced (Interrupt); + begin + Raise_Exception + (Program_Error'Identity, + "Thread_Unblock_Interrupt unimplemented"); + end Thread_Unblock_Interrupt; + + ------------------------ + -- Set_Interrupt_Mask -- + ------------------------ + + procedure Set_Interrupt_Mask (Mask : access Interrupt_Mask) is + pragma Unreferenced (Mask); + begin + null; + end Set_Interrupt_Mask; + + procedure Set_Interrupt_Mask + (Mask : access Interrupt_Mask; + OMask : access Interrupt_Mask) + is + pragma Unreferenced (Mask, OMask); + begin + Raise_Exception + (Program_Error'Identity, + "Set_Interrupt_Mask unimplemented"); + end Set_Interrupt_Mask; + + ------------------------ + -- Get_Interrupt_Mask -- + ------------------------ + + procedure Get_Interrupt_Mask (Mask : access Interrupt_Mask) is + pragma Unreferenced (Mask); + begin + Raise_Exception + (Program_Error'Identity, + "Get_Interrupt_Mask unimplemented"); + end Get_Interrupt_Mask; + + -------------------- + -- Interrupt_Wait -- + -------------------- + + function Interrupt_Wait + (Mask : access Interrupt_Mask) return Interrupt_ID + is + pragma Unreferenced (Mask); + begin + Raise_Exception + (Program_Error'Identity, + "Interrupt_Wait unimplemented"); + return 0; + end Interrupt_Wait; + + ---------------------------- + -- Install_Default_Action -- + ---------------------------- + + procedure Install_Default_Action (Interrupt : Interrupt_ID) is + pragma Unreferenced (Interrupt); + begin + Raise_Exception + (Program_Error'Identity, + "Install_Default_Action unimplemented"); + end Install_Default_Action; + + --------------------------- + -- Install_Ignore_Action -- + --------------------------- + + procedure Install_Ignore_Action (Interrupt : Interrupt_ID) is + pragma Unreferenced (Interrupt); + begin + Raise_Exception + (Program_Error'Identity, + "Install_Ignore_Action unimplemented"); + end Install_Ignore_Action; + + ------------------------- + -- Fill_Interrupt_Mask -- + ------------------------- + + procedure Fill_Interrupt_Mask (Mask : access Interrupt_Mask) is + pragma Unreferenced (Mask); + begin + Raise_Exception + (Program_Error'Identity, + "Fill_Interrupt_Mask unimplemented"); + end Fill_Interrupt_Mask; + + -------------------------- + -- Empty_Interrupt_Mask -- + -------------------------- + + procedure Empty_Interrupt_Mask (Mask : access Interrupt_Mask) is + pragma Unreferenced (Mask); + begin + Raise_Exception + (Program_Error'Identity, + "Empty_Interrupt_Mask unimplemented"); + end Empty_Interrupt_Mask; + + --------------------------- + -- Add_To_Interrupt_Mask -- + --------------------------- + + procedure Add_To_Interrupt_Mask + (Mask : access Interrupt_Mask; + Interrupt : Interrupt_ID) + is + pragma Unreferenced (Mask, Interrupt); + begin + Raise_Exception + (Program_Error'Identity, + "Add_To_Interrupt_Mask unimplemented"); + end Add_To_Interrupt_Mask; + + -------------------------------- + -- Delete_From_Interrupt_Mask -- + -------------------------------- + + procedure Delete_From_Interrupt_Mask + (Mask : access Interrupt_Mask; + Interrupt : Interrupt_ID) + is + pragma Unreferenced (Mask, Interrupt); + begin + Raise_Exception + (Program_Error'Identity, + "Delete_From_Interrupt_Mask unimplemented"); + end Delete_From_Interrupt_Mask; + + --------------- + -- Is_Member -- + --------------- + + function Is_Member + (Mask : access Interrupt_Mask; + Interrupt : Interrupt_ID) return Boolean + is + pragma Unreferenced (Mask, Interrupt); + begin + Raise_Exception + (Program_Error'Identity, + "Is_Member unimplemented"); + return False; + end Is_Member; + + ------------------------- + -- Copy_Interrupt_Mask -- + ------------------------- + + procedure Copy_Interrupt_Mask + (X : out Interrupt_Mask; + Y : Interrupt_Mask) is + pragma Unreferenced (X, Y); + begin + Raise_Exception + (Program_Error'Identity, + "Copy_Interrupt_Mask unimplemented"); + end Copy_Interrupt_Mask; + + ---------------------------- + -- Interrupt_Self_Process -- + ---------------------------- + + procedure Interrupt_Self_Process (Interrupt : Interrupt_ID) is + Result : Interfaces.C.int; + begin + Result := kill (getpid, Signal (Interrupt)); + pragma Assert (Result = 0); + end Interrupt_Self_Process; + + -------------------------- + -- Setup_Interrupt_Mask -- + -------------------------- + + procedure Setup_Interrupt_Mask is + begin + Raise_Exception + (Program_Error'Identity, + "Setup_Interrupt_Mask unimplemented"); + end Setup_Interrupt_Mask; + +end System.Interrupt_Management.Operations; |