1 /* $OpenBSD: frame.h,v 1.3 1998/09/15 10:50:12 pefo Exp $ */
2
3 /*-
4 * Copyright (c) 1998 Per Fogelstrom, Opsycon AB
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. All advertising materials mentioning features or use of this software
15 * must display the following acknowledgement:
16 * This product includes software developed under OpenBSD by
17 * Per Fogelstrom, Opsycon AB, Sweden.
18 * 4. The name of the author may not be used to endorse or promote products
19 * derived from this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
22 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
25 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * JNPR: frame.h,v 1.6.2.1 2007/09/10 08:14:57 girish
34 * $FreeBSD: releng/11.0/sys/mips/include/frame.h 249790 2013-04-23 09:38:18Z imp $
35 *
36 */
37 #ifndef _MACHINE_FRAME_H_
38 #define _MACHINE_FRAME_H_
39
40 /* Note: This must also match regnum.h and regdef.h */
41
42 struct trapframe {
43 register_t zero;
44 register_t ast;
45 register_t v0;
46 register_t v1;
47 register_t a0;
48 register_t a1;
49 register_t a2;
50 register_t a3;
51 #if defined(__mips_n32) || defined(__mips_n64)
52 register_t a4;
53 register_t a5;
54 register_t a6;
55 register_t a7;
56 register_t t0;
57 register_t t1;
58 register_t t2;
59 register_t t3;
60 #else
61 register_t t0;
62 register_t t1;
63 register_t t2;
64 register_t t3;
65 register_t t4;
66 register_t t5;
67 register_t t6;
68 register_t t7;
69 #endif
70 register_t s0;
71 register_t s1;
72 register_t s2;
73 register_t s3;
74 register_t s4;
75 register_t s5;
76 register_t s6;
77 register_t s7;
78 register_t t8;
79 register_t t9;
80 register_t k0;
81 register_t k1;
82 register_t gp;
83 register_t sp;
84 register_t s8;
85 register_t ra;
86 register_t sr;
87 register_t mullo;
88 register_t mulhi;
89 register_t badvaddr;
90 register_t cause;
91 register_t pc;
92 /*
93 * FREEBSD_DEVELOPERS_FIXME:
94 * Include any other registers which are CPU-Specific and
95 * need to be part of the frame here.
96 *
97 * Also, be sure this matches what is defined in regnum.h
98 */
99 register_t ic; /* RM7k and RM9k specific */
100 register_t dummy; /* Alignment for 32-bit case */
101
102 /* From here and on, only saved user processes. */
103
104 f_register_t f0;
105 f_register_t f1;
106 f_register_t f2;
107 f_register_t f3;
108 f_register_t f4;
109 f_register_t f5;
110 f_register_t f6;
111 f_register_t f7;
112 f_register_t f8;
113 f_register_t f9;
114 f_register_t f10;
115 f_register_t f11;
116 f_register_t f12;
117 f_register_t f13;
118 f_register_t f14;
119 f_register_t f15;
120 f_register_t f16;
121 f_register_t f17;
122 f_register_t f18;
123 f_register_t f19;
124 f_register_t f20;
125 f_register_t f21;
126 f_register_t f22;
127 f_register_t f23;
128 f_register_t f24;
129 f_register_t f25;
130 f_register_t f26;
131 f_register_t f27;
132 f_register_t f28;
133 f_register_t f29;
134 f_register_t f30;
135 f_register_t f31;
136 register_t fsr;
137 register_t fdummy;
138 };
139
140 #endif /* !_MACHINE_FRAME_H_ */
Cache object: 43b437ac79e1a45905750e09d8de0c98
|