summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/cpu/i386/cpu.h
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-08-21 16:39:52 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-08-21 16:39:52 +0000
commiteb562f2c860061868e4ea1a821a84147b694dd07 (patch)
tree4273d9ac092dab0e00e065a365595a2b30fcc95f /c/src/exec/score/cpu/i386/cpu.h
parentSpacing changes (diff)
downloadrtems-eb562f2c860061868e4ea1a821a84147b694dd07.tar.bz2
Patch from Eric Valette <valette@crf.canon.fr>:
Here is a patch that enables to catch exception and get message before crashing RTEMS :) It should be generic to any Intel port although enabled only for pc386 BSP... [Joel] I fixed the bug I introduced in irq_asm.s...
Diffstat (limited to 'c/src/exec/score/cpu/i386/cpu.h')
-rw-r--r--c/src/exec/score/cpu/i386/cpu.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/c/src/exec/score/cpu/i386/cpu.h b/c/src/exec/score/cpu/i386/cpu.h
index d4806a2be4..8620ad8392 100644
--- a/c/src/exec/score/cpu/i386/cpu.h
+++ b/c/src/exec/score/cpu/i386/cpu.h
@@ -138,6 +138,10 @@ typedef struct {
unsigned32 eflags;
} CPU_Exception_frame;
+typedef void (*cpuExcHandlerType) (CPU_Exception_frame*);
+extern cpuExcHandlerType _currentExcHandler;
+extern void rtems_exception_init_mngt();
+
/*
* The following structure defines the set of information saved
* on the current stack by RTEMS upon receipt of each interrupt
@@ -146,6 +150,29 @@ typedef struct {
typedef CPU_Exception_frame CPU_Interrupt_frame;
+typedef enum {
+ DIVIDE_BY_ZERO = 0,
+ DEBUG = 1,
+ NMI = 2,
+ BREAKPOINT = 3,
+ OVERFLOW = 4,
+ BOUND = 5,
+ ILLEGAL_INSTR = 6,
+ MATH_COPROC_UNAVAIL = 7,
+ DOUBLE_FAULT = 8,
+ I386_COPROC_SEG_ERR = 9,
+ INVALID_TSS = 10,
+ SEGMENT_NOT_PRESENT = 11,
+ STACK_SEGMENT_FAULT = 12,
+ GENERAL_PROT_ERR = 13,
+ PAGE_FAULT = 14,
+ INTEL_RES15 = 15,
+ FLOAT_ERROR = 16,
+ ALIGN_CHECK = 17,
+ MACHINE_CHECK = 18
+} Intel_symbolic_exception_name;
+
+
/*
* The following table contains the information required to configure
* the i386 specific parameters.