![]()  | 
  
    RTEMS
    5.1
    
   | 
 
PowerPC Exceptions API. More...
Go to the source code of this file.
Macros | |
| #define | ASM_RESET_VECTOR 0x01 | 
| #define | ASM_MACH_VECTOR 0x02 | 
| #define | ASM_PROT_VECTOR 0x03 | 
| #define | ASM_ISI_VECTOR 0x04 | 
| #define | ASM_EXT_VECTOR 0x05 | 
| #define | ASM_ALIGN_VECTOR 0x06 | 
| #define | ASM_PROG_VECTOR 0x07 | 
| #define | ASM_FLOAT_VECTOR 0x08 | 
| #define | ASM_DEC_VECTOR 0x09 | 
| #define | ASM_SYS_VECTOR 0x0C | 
| #define | ASM_TRACE_VECTOR 0x0D | 
| #define | ASM_PPC405_APU_UNAVAIL_VECTOR ASM_60X_VEC_ASSIST_VECTOR | 
| #define | ASM_8XX_FLOATASSIST_VECTOR 0x0E | 
| #define | ASM_8XX_SOFTEMUL_VECTOR 0x10 | 
| #define | ASM_8XX_ITLBMISS_VECTOR 0x11 | 
| #define | ASM_8XX_DTLBMISS_VECTOR 0x12 | 
| #define | ASM_8XX_ITLBERROR_VECTOR 0x13 | 
| #define | ASM_8XX_DTLBERROR_VECTOR 0x14 | 
| #define | ASM_8XX_DBREAK_VECTOR 0x1C | 
| #define | ASM_8XX_IBREAK_VECTOR 0x1D | 
| #define | ASM_8XX_PERIFBREAK_VECTOR 0x1E | 
| #define | ASM_8XX_DEVPORT_VECTOR 0x1F | 
| #define | ASM_5XX_FLOATASSIST_VECTOR 0x0E | 
| #define | ASM_5XX_SOFTEMUL_VECTOR 0x10 | 
| #define | ASM_5XX_IPROT_VECTOR 0x13 | 
| #define | ASM_5XX_DPROT_VECTOR 0x14 | 
| #define | ASM_5XX_DBREAK_VECTOR 0x1C | 
| #define | ASM_5XX_IBREAK_VECTOR 0x1D | 
| #define | ASM_5XX_MEBREAK_VECTOR 0x1E | 
| #define | ASM_5XX_NMEBREAK_VECTOR 0x1F | 
| #define | ASM_60X_VEC_VECTOR 0x0A | 
| #define | ASM_60X_PERFMON_VECTOR 0x0F | 
| #define | ASM_60X_IMISS_VECTOR 0x10 | 
| #define | ASM_60X_DLMISS_VECTOR 0x11 | 
| #define | ASM_60X_DSMISS_VECTOR 0x12 | 
| #define | ASM_60X_ADDR_VECTOR 0x13 | 
| #define | ASM_60X_SYSMGMT_VECTOR 0x14 | 
| #define | ASM_60X_VEC_ASSIST_VECTOR 0x16 | 
| #define | ASM_60X_ITM_VECTOR 0x17 | 
| #define | ASM_BOOKE_CRIT_VECTOR 0x01 | 
| #define | ASM_BOOKE_DEC_VECTOR 0x10 | 
| #define | ASM_BOOKE_ITLBMISS_VECTOR 0x11 | 
| #define | ASM_BOOKE_DTLBMISS_VECTOR 0x12 | 
| #define | ASM_BOOKE_FIT_VECTOR 0x13 | 
| #define | ASM_BOOKE_WDOG_VECTOR 0x14 | 
| #define | ASM_BOOKE_APU_VECTOR 0x18 | 
| #define | ASM_BOOKE_DEBUG_VECTOR ASM_TRACE_VECTOR | 
| #define | ASM_E500_SPE_UNAVAILABLE_VECTOR ASM_60X_VEC_VECTOR | 
| #define | ASM_E500_EMB_FP_DATA_VECTOR 0x19 | 
| #define | ASM_E500_EMB_FP_ROUND_VECTOR 0x1A | 
| #define | ASM_E500_PERFMON_VECTOR ASM_60X_PERFMON_VECTOR | 
| #define | ASM_E300_CRIT_VECTOR 0x0A | 
| #define | ASM_E300_PERFMON_VECTOR ASM_60X_PERFMON_VECTOR | 
| #define | ASM_E300_IMISS_VECTOR ASM_60X_IMISS_VECTOR /* Special case: Shadowed GPRs */ | 
| #define | ASM_E300_DLMISS_VECTOR ASM_60X_DLMISS_VECTOR /* Special case: Shadowed GPRs */ | 
| #define | ASM_E300_DSMISS_VECTOR ASM_60X_DSMISS_VECTOR /* Special case: Shadowed GPRs */ | 
| #define | ASM_E300_ADDR_VECTOR ASM_60X_ADDR_VECTOR | 
| #define | ASM_E300_SYSMGMT_VECTOR ASM_60X_SYSMGMT_VECTOR | 
| #define | LAST_VALID_EXC 0x1F | 
| #define | ASM_60X_VEC_VECTOR_OFFSET 0xf20 | 
| #define | ASM_PPC405_FIT_VECTOR_OFFSET 0x1010 | 
| #define | ASM_PPC405_WDOG_VECTOR_OFFSET 0x1020 | 
| #define | ASM_PPC405_TRACE_VECTOR_OFFSET 0x2000 | 
| #define | LINK_REGISTER_CALLEE_UPDATE_ROOM 4 | 
| #define | EXC_GENERIC_SIZE (PPC_EXC_FRAME_SIZE + PPC_STACK_RED_ZONE_SIZE) | 
| #define | PPC_EXC_INTERRUPT_FRAME_SIZE CPU_INTERRUPT_FRAME_SIZE | 
| #define | EXC_VEC_SIZE (0) | 
| #define | EXCEPTION_FRAME_END (EXC_GENERIC_SIZE + EXC_VEC_SIZE) | 
Typedefs | |
| typedef CPU_Exception_frame | BSP_Exception_frame | 
| typedef void(* | exception_handler_t) (BSP_Exception_frame *) | 
| Global exception handler type.  | |
| typedef uint8_t | ppc_exc_categories[LAST_VALID_EXC+1] | 
| Categorie set type.  | |
| typedef int(* | ppc_exc_handler_t) (BSP_Exception_frame *f, unsigned vector) | 
| High-level exception handler type.  More... | |
| typedef exception_handler_t | cpuExcHandlerType | 
Enumerations | |
| enum | ppc_exc_category {  PPC_EXC_INVALID = 0, PPC_EXC_ASYNC = 1, PPC_EXC_CLASSIC = 2, PPC_EXC_CLASSIC_ASYNC = PPC_EXC_CLASSIC | PPC_EXC_ASYNC, PPC_EXC_405_CRITICAL = 4, PPC_EXC_405_CRITICAL_ASYNC = PPC_EXC_405_CRITICAL | PPC_EXC_ASYNC, PPC_EXC_BOOKE_CRITICAL = 6, PPC_EXC_BOOKE_CRITICAL_ASYNC = PPC_EXC_BOOKE_CRITICAL | PPC_EXC_ASYNC, PPC_EXC_E500_MACHCHK = 8, PPC_EXC_E500_MACHCHK_ASYNC = PPC_EXC_E500_MACHCHK | PPC_EXC_ASYNC, PPC_EXC_NAKED = 10 }  | 
| Exception categories.  More... | |
Functions | |
| void | C_exception_handler (BSP_Exception_frame *excPtr) | 
| Default global exception handler.  | |
| void | BSP_printStackTrace (const BSP_Exception_frame *excPtr) | 
| void * | ppc_exc_vector_address (unsigned vector, void *vector_base) | 
| Returns the entry address of the vector.  More... | |
| const ppc_exc_categories * | ppc_exc_categories_for_cpu (ppc_cpu_id_t cpu) | 
Returns the category set for a CPU of type cpu, or NULL if there is no category set available for this CPU.  | |
| ppc_exc_category | ppc_exc_category_for_vector (const ppc_exc_categories *categories, unsigned vector) | 
| Returns the category for the vector vector using the category set categories.  | |
| rtems_status_code | ppc_exc_make_prologue (unsigned vector, void *vector_base, ppc_exc_category category, uint32_t *prologue, size_t *prologue_size) | 
| Makes a minimal prologue for the vector vector with the category category.  More... | |
| void | ppc_exc_initialize_with_vector_base (uintptr_t interrupt_stack_begin, void *vector_base) | 
| Initializes the exception handling.  More... | |
| int | ppc_exc_handler_default (BSP_Exception_frame *f, unsigned int vector) | 
| Default high-level exception handler.  More... | |
| rtems_status_code | ppc_exc_set_handler (unsigned vector, ppc_exc_handler_t hdl) | 
| Set high-level exception handler.  More... | |
| ppc_exc_handler_t | ppc_exc_get_handler (unsigned vector) | 
| Returns the currently active high-level exception handler.  | |
| void | ppc_exc_wrapup (BSP_Exception_frame *f) | 
| int | ppc_exc_alignment_handler (BSP_Exception_frame *frame, unsigned excNum) | 
| Standard aligment handler.  More... | |
Variables | |
| uint32_t | ppc_exc_msr_bits | 
| Bits for MSR update.  More... | |
| uint32_t | ppc_exc_cache_wb_check | 
| Cache write back check flag.  More... | |
| ppc_exc_handler_t | ppc_exc_handler_table [LAST_VALID_EXC+1] | 
| High-level exception handler table.  | |
| exception_handler_t | globalExceptHdl | 
| Global exception handler.  | |
| uint32_t(* | ppc_exc_get_DAR )(void) | 
| Function for DAR access.  More... | |
PowerPC Exceptions API.
 1.8.15