RTEMS  5.1
bspException.h
1 #ifndef BSP_EXCEPTION_HANDLER_H
2 #define BSP_EXCEPTION_HANDLER_H
3 
4 /* A slightly improved exception 'default' exception handler for RTEMS / SVGM */
5 
6 /*
7  * Authorship
8  * ----------
9  * This software was created by
10  * Till Straumann <strauman@slac.stanford.edu>, 5/2002,
11  * Stanford Linear Accelerator Center, Stanford University.
12  *
13  * Acknowledgement of sponsorship
14  * ------------------------------
15  * This software was produced by
16  * the Stanford Linear Accelerator Center, Stanford University,
17  * under Contract DE-AC03-76SFO0515 with the Department of Energy.
18  *
19  * Government disclaimer of liability
20  * ----------------------------------
21  * Neither the United States nor the United States Department of Energy,
22  * nor any of their employees, makes any warranty, express or implied, or
23  * assumes any legal liability or responsibility for the accuracy,
24  * completeness, or usefulness of any data, apparatus, product, or process
25  * disclosed, or represents that its use would not infringe privately owned
26  * rights.
27  *
28  * Stanford disclaimer of liability
29  * --------------------------------
30  * Stanford University makes no representations or warranties, express or
31  * implied, nor assumes any liability for the use of this software.
32  *
33  * Stanford disclaimer of copyright
34  * --------------------------------
35  * Stanford University, owner of the copyright, hereby disclaims its
36  * copyright and all other rights in this software. Hence, anyone may
37  * freely use it for any purpose without restriction.
38  *
39  * Maintenance of notices
40  * ----------------------
41  * In the interest of clarity regarding the origin and status of this
42  * SLAC software, this and all the preceding Stanford University notices
43  * are to remain affixed to any copy or derivative of this software made
44  * or distributed by the recipient and are to be affixed to any copy of
45  * software made or distributed by the recipient that contains a copy or
46  * derivative of this software.
47  *
48  * ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03
49  */
50 
51 #include <bsp/vectors.h>
52 
53 /* Two types of exception intercepting / catching is supported:
54  *
55  * - lowlevel handling (runs at IRQ level, before restoring any
56  * task context).
57  * - highlevel handling.
58  *
59  * A lowlevel user hook is invoked twice, before and after processing
60  * (printing) the exception.
61  * If the user hook returns a nonzero value, normal processing
62  * is skipped (including the second call to the hook)
63  *
64  * If the hook returns nonzero to the second call, no default
65  * 'panic' occurs.
66  *
67  * Default 'panic':
68  * - if a task context is available:
69  * - if a highlevel handler is installed, pass control
70  * to the highlevel handler when returning from the
71  * exception (the highlevel handler should probably
72  * do a longjmp()). Otherwise:
73  * - try to suspend interrupted task.
74  * - hang if no task context is available.
75  *
76  */
77 
79 
80 typedef int (*BSP_ExceptionHookProc)(BSP_Exception_frame *frame, BSP_ExceptionExtension ext, int after);
81 
83  BSP_ExceptionHookProc lowlevelHook;
84  int quiet; /* silence the exception handler */
85  void (*highlevelHook)(BSP_ExceptionExtension);
86  /* user fields may be added after this */
88 
89 #define SRR1_TEA_EXC (1<<(31-13))
90 #define SRR1_MCP_EXC (1<<(31-12))
91 
92 void
93 BSP_exceptionHandler(BSP_Exception_frame* excPtr);
94 
95 /* install an exception handler to the current task context */
97 BSP_exceptionHandlerInstall(BSP_ExceptionExtension e);
98 
99 #endif
PowerPC Exceptions API.
unsigned e
Definition: tlb.h:223
Definition: bspException.h:82
The set of registers that specifies the complete processor state.
Definition: cpu.h:629