diff options
-rw-r--r-- | c/src/lib/libcpu/powerpc/new-exceptions/cpu.c | 22 | ||||
-rw-r--r-- | cpukit/sapi/src/interrdesc.c | 3 | ||||
-rw-r--r-- | cpukit/score/cpu/powerpc/Makefile.am | 1 | ||||
-rw-r--r-- | cpukit/score/cpu/powerpc/ppc-isr-vector-install.c | 33 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/interr.h | 3 | ||||
-rw-r--r-- | testsuites/sptests/spinternalerror02/init.c | 2 | ||||
-rw-r--r-- | testsuites/sptests/spinternalerror02/spinternalerror02.scn | 1 |
7 files changed, 40 insertions, 25 deletions
diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/cpu.c b/c/src/lib/libcpu/powerpc/new-exceptions/cpu.c index cb944ba0a3..7ce7e2f5c7 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/cpu.c +++ b/c/src/lib/libcpu/powerpc/new-exceptions/cpu.c @@ -132,25 +132,3 @@ void _CPU_Context_Initialize( _CPU_Context_initialize_altivec(the_context); #endif } - -/* _CPU_ISR_install_vector - * - * This kernel routine installs the RTEMS handler for the - * specified vector. - * - * Input parameters: - * vector - interrupt vector number - * old_handler - former ISR for this vector number - * new_handler - replacement ISR for this vector number - * - * Output parameters: NONE - */ - -void _CPU_ISR_install_vector( - uint32_t vector, - proc_ptr new_handler, - proc_ptr *old_handler -) -{ - BSP_panic("_CPU_ISR_install_vector called\n"); -} diff --git a/cpukit/sapi/src/interrdesc.c b/cpukit/sapi/src/interrdesc.c index 181bcffd04..5eab68313b 100644 --- a/cpukit/sapi/src/interrdesc.c +++ b/cpukit/sapi/src/interrdesc.c @@ -42,7 +42,8 @@ static const char *const internal_error_desc [] = { "INTERNAL_ERROR_SHUTDOWN_WHEN_NOT_UP", "INTERNAL_ERROR_GXX_KEY_ADD_FAILED", "INTERNAL_ERROR_GXX_MUTEX_INIT_FAILED", - "INTERNAL_ERROR_NO_MEMORY_FOR_HEAP" + "INTERNAL_ERROR_NO_MEMORY_FOR_HEAP", + "INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR" }; const char *rtems_internal_error_description( rtems_fatal_code error ) diff --git a/cpukit/score/cpu/powerpc/Makefile.am b/cpukit/score/cpu/powerpc/Makefile.am index 65007ef533..e8b2f920c7 100644 --- a/cpukit/score/cpu/powerpc/Makefile.am +++ b/cpukit/score/cpu/powerpc/Makefile.am @@ -13,6 +13,7 @@ include_rtems_powerpc_HEADERS = rtems/powerpc/registers.h noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = cpu.c +libscorecpu_a_SOURCES += ppc-isr-vector-install.c libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) include $(srcdir)/preinstall.am diff --git a/cpukit/score/cpu/powerpc/ppc-isr-vector-install.c b/cpukit/score/cpu/powerpc/ppc-isr-vector-install.c new file mode 100644 index 0000000000..4b8e81a5ea --- /dev/null +++ b/cpukit/score/cpu/powerpc/ppc-isr-vector-install.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2012 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#ifdef HAVE_CONFIG_H + #include "config.h" +#endif + +#include <rtems/score/cpu.h> +#include <rtems/score/interr.h> + +void _CPU_ISR_install_vector( + uint32_t vector, + proc_ptr new_handler, + proc_ptr *old_handler +) +{ + _Internal_error_Occurred( + INTERNAL_ERROR_CORE, + false, + INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR + ); +} diff --git a/cpukit/score/include/rtems/score/interr.h b/cpukit/score/include/rtems/score/interr.h index 8aa85aeb74..6d823a3244 100644 --- a/cpukit/score/include/rtems/score/interr.h +++ b/cpukit/score/include/rtems/score/interr.h @@ -73,7 +73,8 @@ typedef enum { INTERNAL_ERROR_SHUTDOWN_WHEN_NOT_UP, INTERNAL_ERROR_GXX_KEY_ADD_FAILED, INTERNAL_ERROR_GXX_MUTEX_INIT_FAILED, - INTERNAL_ERROR_NO_MEMORY_FOR_HEAP + INTERNAL_ERROR_NO_MEMORY_FOR_HEAP, + INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR } Internal_errors_Core_list; typedef uint32_t Internal_errors_t; diff --git a/testsuites/sptests/spinternalerror02/init.c b/testsuites/sptests/spinternalerror02/init.c index 357ea5b5e7..79b36ca89c 100644 --- a/testsuites/sptests/spinternalerror02/init.c +++ b/testsuites/sptests/spinternalerror02/init.c @@ -33,7 +33,7 @@ static void test(void) puts( desc ); } while ( desc != desc_last ); - rtems_test_assert( error - 3 == INTERNAL_ERROR_NO_MEMORY_FOR_HEAP ); + rtems_test_assert( error - 3 == INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR ); } static void Init(rtems_task_argument arg) diff --git a/testsuites/sptests/spinternalerror02/spinternalerror02.scn b/testsuites/sptests/spinternalerror02/spinternalerror02.scn index c1152c42fc..6fdbed6083 100644 --- a/testsuites/sptests/spinternalerror02/spinternalerror02.scn +++ b/testsuites/sptests/spinternalerror02/spinternalerror02.scn @@ -23,6 +23,7 @@ INTERNAL_ERROR_SHUTDOWN_WHEN_NOT_UP INTERNAL_ERROR_GXX_KEY_ADD_FAILED INTERNAL_ERROR_GXX_MUTEX_INIT_FAILED INTERNAL_ERROR_NO_MEMORY_FOR_HEAP +INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR ? ? *** END OF TEST SPINTERNALERROR 2 *** |