RTEMS: bsps/powerpc/mvme5500/include/bsp/bspException.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
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
78typedef struct BSP_ExceptionExtensionRec_ *BSP_ExceptionExtension;
79
80typedef int (*BSP_ExceptionHookProc)(BSP_Exception_frame *frame, BSP_ExceptionExtension ext, int after);
81
82 typedef struct BSP_ExceptionExtensionRec_ {
83 BSP_ExceptionHookProc lowlevelHook;
84 int quiet; /* silence the exception handler */
85 void (*highlevelHook)(BSP_ExceptionExtension);
86 /* user fields may be added after this */
87} BSP_ExceptionExtensionRec;
88
89#define SRR1_TEA_EXC (1<<(31-13))
90#define SRR1_MCP_EXC (1<<(31-12))
91
92void
93BSP_exceptionHandler(BSP_Exception_frame* excPtr);
94
95/* install an exception handler to the current task context */
96 BSP_ExceptionExtension
97BSP_exceptionHandlerInstall(BSP_ExceptionExtension e);
98
99#endif
vectors.h
PowerPC Exceptions API.
BSP_ExceptionExtensionRec_
Definition: bspException.h:82
CPU_Exception_frame
The set of registers that specifies the complete processor state.
Definition: cpu.h:629
e
unsigned e
Definition: tlb.h:13