summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_hdl.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-03-13 16:24:16 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-03-19 07:00:20 +0100
commitbd1508019cfb219b41da7cb6f1a9895a69c64534 (patch)
tree6c3f15e745ef11dc3d7c3b706fde54c95dac055d /c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_hdl.c
parentbsps/powerpc: Remove unused files (diff)
downloadrtems-bd1508019cfb219b41da7cb6f1a9895a69c64534.tar.bz2
bsps/powerpc: Move exceptions support to bsps
This patch is a part of the BSP source reorganization. Update #3285.
Diffstat (limited to 'c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_hdl.c')
-rw-r--r--c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_hdl.c116
1 files changed, 0 insertions, 116 deletions
diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_hdl.c b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_hdl.c
deleted file mode 100644
index ce1f326438..0000000000
--- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_hdl.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* PowerPC exception handling middleware; consult README for more
- * information.
- *
- * Author: Till Straumann <strauman@slac.stanford.edu>, 2007
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <bsp/vectors.h>
-
-#include <rtems/score/threaddispatch.h>
-
-/* Provide temp. storage space for a few registers.
- * This is used by the assembly code prior to setting up
- * the stack.
- * One set is needed for each exception type with its
- * own SRR0/SRR1 pair since such exceptions may nest.
- *
- * NOTE: The assembly code needs these variables to
- * be in the .sdata section and accesses them
- * via R13.
- */
-uint32_t ppc_exc_lock_std = 0;
-uint32_t ppc_exc_lock_crit = 0;
-uint32_t ppc_exc_lock_mchk = 0;
-
-uint32_t ppc_exc_vector_register_std = 0;
-uint32_t ppc_exc_vector_register_crit = 0;
-uint32_t ppc_exc_vector_register_mchk = 0;
-
-#ifndef PPC_EXC_CONFIG_BOOKE_ONLY
-
-/* MSR bits to enable once critical status info is saved and the stack
- * is switched; must be set depending on CPU type
- *
- * Default is set here for classic PPC CPUs with a MMU
- * but is overridden from vectors_init.c
- */
-uint32_t ppc_exc_msr_bits = MSR_IR | MSR_DR | MSR_RI;
-
-#endif /* PPC_EXC_CONFIG_BOOKE_ONLY */
-
-int ppc_exc_handler_default(BSP_Exception_frame *f, unsigned int vector)
-{
- return -1;
-}
-
-#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
-
-exception_handler_t globalExceptHdl = C_exception_handler;
-
-/* Table of C-handlers */
-ppc_exc_handler_t ppc_exc_handler_table [LAST_VALID_EXC + 1] = {
- [0 ... LAST_VALID_EXC] = ppc_exc_handler_default
-};
-
-#endif /* PPC_EXC_CONFIG_USE_FIXED_HANDLER */
-
-ppc_exc_handler_t ppc_exc_get_handler(unsigned vector)
-{
- if (
- vector <= LAST_VALID_EXC
- && ppc_exc_handler_table [vector] != ppc_exc_handler_default
- ) {
- return ppc_exc_handler_table [vector];
- } else {
- return NULL;
- }
-}
-
-rtems_status_code ppc_exc_set_handler(unsigned vector, ppc_exc_handler_t handler)
-{
- if (vector <= LAST_VALID_EXC) {
- if (handler == NULL) {
- handler = ppc_exc_handler_default;
- }
-
- if (ppc_exc_handler_table [vector] != handler) {
-#ifndef PPC_EXC_CONFIG_USE_FIXED_HANDLER
- ppc_exc_handler_table [vector] = handler;
-#else /* PPC_EXC_CONFIG_USE_FIXED_HANDLER */
- return RTEMS_RESOURCE_IN_USE;
-#endif /* PPC_EXC_CONFIG_USE_FIXED_HANDLER */
- }
-
- return RTEMS_SUCCESSFUL;
- } else {
- return RTEMS_INVALID_ID;
- }
-}
-
-void ppc_exc_wrapup(BSP_Exception_frame *frame)
-{
- Per_CPU_Control *cpu_self;
-
- cpu_self = _Per_CPU_Get();
-
- if (cpu_self->isr_dispatch_disable) {
- return;
- }
-
- while (cpu_self->dispatch_necessary) {
- rtems_interrupt_level level;
-
- cpu_self->isr_dispatch_disable = 1;
- cpu_self->thread_dispatch_disable_level = 1;
- _Thread_Do_dispatch(cpu_self, frame->EXC_SRR1);
- rtems_interrupt_local_disable(level);
- (void) level;
- cpu_self = _Per_CPU_Get();
- }
-
- cpu_self->isr_dispatch_disable = 0;
-}