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