summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/shared/vectors/vectors.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/shared/vectors/vectors.h')
-rw-r--r--c/src/lib/libbsp/powerpc/shared/vectors/vectors.h33
1 files changed, 26 insertions, 7 deletions
diff --git a/c/src/lib/libbsp/powerpc/shared/vectors/vectors.h b/c/src/lib/libbsp/powerpc/shared/vectors/vectors.h
index 55823893ce..e931db260b 100644
--- a/c/src/lib/libbsp/powerpc/shared/vectors/vectors.h
+++ b/c/src/lib/libbsp/powerpc/shared/vectors/vectors.h
@@ -12,8 +12,9 @@
*
* $Id$
*/
-#ifndef LIBBSP_POWERPC_MCP750_VECTORS_H
-#define LIBBSP_POWERPC_MCP750_VECTORS_H
+#ifndef LIBBSP_POWERPC_SHARED_VECTORS_H
+#define LIBBSP_POWERPC_SHARED_VECTORS_H
+#include <libcpu/raw_exception.h>
/*
* The callee (high level exception code written in C)
@@ -72,16 +73,26 @@
#ifndef ASM
/*
* default raw exception handlers
+ * The "*_size" symbol is generated by the linker; prevent it from
+ * being accessed in one of the short data areas by declaring
+ * it as an array
*/
extern void default_exception_vector_code_prolog();
+extern unsigned int default_exception_vector_code_prolog_size[];
extern void tgpr_clr_exception_vector_code_prolog();
-/* This symbol is generated by the linker; prevent it from
- * being accessed in one of the short data areas by declaring
- * it as an array
+extern unsigned int tgpr_clr_exception_vector_code_prolog_size[];
+/*
+ * FIXME: these should move to a "irq_asm.h"
*/
-extern int default_exception_vector_code_prolog_size[];
-extern int tgpr_clr_exception_vector_code_prolog_size[];
+extern void external_exception_vector_prolog_code();
+extern unsigned int external_exception_vector_prolog_code_size[];
+extern void decrementer_exception_vector_prolog_code();
+extern unsigned int decrementer_exception_vector_prolog_code_size[];
+extern void pit_exception_vector_prolog_code();
+extern unsigned int pit_exception_vector_prolog_code_size[];
+extern void fit_exception_vector_prolog_code();
+extern unsigned int fit_exception_vector_prolog_code_size[];
/* codemove is like memmove, but it also gets the cache line size
* as 4th parameter to synchronize them. If this last parameter is
@@ -91,6 +102,8 @@ extern int tgpr_clr_exception_vector_code_prolog_size[];
* next mutiple of 4.
*/
extern void * codemove(void *, const void *, unsigned int, unsigned long);
+extern void exception_nop_enable(const rtems_raw_except_connect_data* ptr);
+extern int exception_always_enabled(const rtems_raw_except_connect_data* ptr);
extern void initialize_exceptions();
typedef struct {
@@ -145,6 +158,12 @@ extern exception_handler_t globalExceptHdl;
typedef BSP_Exception_frame CPU_Exception_frame;
typedef exception_handler_t cpuExcHandlerType;
+/*
+ * dummy functions for exception interface
+ */
+void exception_nop_enable(const rtems_raw_except_connect_data* ptr);
+int exception_always_enabled(const rtems_raw_except_connect_data* ptr);
+
#endif /* ASM */
#endif /* LIBBSP_POWERPC_MCP750_VECTORS_H */