source: rtems/c/src/lib/libbsp/powerpc/mvme5500/vectors/bspException.h @ 9b4422a2

4.115
Last change on this file since 9b4422a2 was 9b4422a2, checked in by Joel Sherrill <joel.sherrill@…>, on May 3, 2012 at 3:09:24 PM

Remove All CVS Id Strings Possible Using a Script

Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines

next to each other after Id string line removed.

+ remove entire comment blocks which only exited to

contain CVS Ids

+ If the processing left a blank line at the top of

a file, it was removed.

  • Property mode set to 100644
File size: 3.6 KB
Line 
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
82typedef 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 */
96BSP_ExceptionExtension
97BSP_exceptionHandlerInstall(BSP_ExceptionExtension e);
98
99#endif
Note: See TracBrowser for help on using the repository browser.