]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - sys/mips/include/frame.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / sys / mips / include / frame.h
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$
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_ */