frame.h revision 1.11 1 /* $NetBSD: frame.h,v 1.11 2003/08/07 16:29:28 agc Exp $ */
2
3 /*-
4 * Copyright (c) 1990 The Regents of the University of California.
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to Berkeley by
8 * William Jolitz.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
18 * 3. Neither the name of the University nor the names of its contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * @(#)frame.h 5.2 (Berkeley) 1/18/91
35 */
36
37 /*-
38 * Copyright (c) 2002 The NetBSD Foundation, Inc. All rights reserved.
39 * Copyright (c) 1995 Charles M. Hannum. All rights reserved.
40 *
41 * This code is derived from software contributed to Berkeley by
42 * William Jolitz.
43 *
44 * Redistribution and use in source and binary forms, with or without
45 * modification, are permitted provided that the following conditions
46 * are met:
47 * 1. Redistributions of source code must retain the above copyright
48 * notice, this list of conditions and the following disclaimer.
49 * 2. Redistributions in binary form must reproduce the above copyright
50 * notice, this list of conditions and the following disclaimer in the
51 * documentation and/or other materials provided with the distribution.
52 * 3. All advertising materials mentioning features or use of this software
53 * must display the following acknowledgement:
54 * This product includes software developed by the University of
55 * California, Berkeley and its contributors.
56 * 4. Neither the name of the University nor the names of its contributors
57 * may be used to endorse or promote products derived from this software
58 * without specific prior written permission.
59 *
60 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
61 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
62 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
63 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
64 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
65 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
66 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
67 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
68 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
69 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
70 * SUCH DAMAGE.
71 *
72 * @(#)frame.h 5.2 (Berkeley) 1/18/91
73 */
74
75 #ifndef _SH3_FRAME_H_
76 #define _SH3_FRAME_H_
77
78 #include <sys/signal.h>
79 #include <sys/sa.h>
80
81 /*
82 * Exception Stack Frame
83 */
84 struct trapframe {
85 /* software member */
86 int tf_expevt;
87 int tf_ubc;
88 /* hardware registers */
89 int tf_spc;
90 int tf_ssr;
91 int tf_macl;
92 int tf_mach;
93 int tf_pr;
94 int tf_r13;
95 int tf_r12;
96 int tf_r11;
97 int tf_r10;
98 int tf_r9;
99 int tf_r8;
100 int tf_r7;
101 int tf_r6;
102 int tf_r5;
103 int tf_r4;
104 int tf_r3;
105 int tf_r2;
106 int tf_r1;
107 int tf_r0;
108 int tf_r15;
109 int tf_r14;
110 };
111
112 /*
113 * Stack frame inside cpu_switch()
114 */
115 struct switchframe {
116 int sf_r15;
117 int sf_r14;
118 int sf_r13;
119 int sf_r12;
120 int sf_r11;
121 int sf_r10;
122 int sf_r9;
123 int sf_r8;
124 int sf_pr;
125 int sf_r6_bank;
126 int sf_sr;
127 int sf_r7_bank;
128 };
129
130 /*
131 * Signal frame
132 */
133 struct sigframe {
134 struct sigcontext sf_sc;
135 };
136
137 /*
138 * Scheduler activations upcall frame
139 */
140 struct saframe {
141 #if 0 /* in registers on entry to upcallcode */
142 int sa_type; /* r4 */
143 struct sa_t ** sa_sas; /* r5 */
144 int sa_events; /* r6 */
145 int sa_interrupted; /* r7 */
146 #endif
147 void * sa_arg;
148 };
149
150 #endif /* !_SH3_FRAME_H_ */
151