diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/shared/vectors/vectors.h')
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/vectors/vectors.h | 33 |
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 */ |