reg.h revision 1.2
1/*
2 * Copyright (c) 1988 University of Utah.
3 * Copyright (c) 1992, 1993
4 *	The Regents of the University of California.  All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * the Systems Programming Group of the University of Utah Computer
8 * Science Department and Ralph Campbell.
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. All advertising materials mentioning features or use of this software
19 *    must display the following acknowledgement:
20 *	This product includes software developed by the University of
21 *	California, Berkeley and its contributors.
22 * 4. Neither the name of the University nor the names of its contributors
23 *    may be used to endorse or promote products derived from this software
24 *    without specific prior written permission.
25 *
26 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 * from: Utah Hdr: reg.h 1.1 90/07/09
39 *
40 *	from: @(#)reg.h	8.2 (Berkeley) 1/11/94
41 *      $Id: reg.h,v 1.2 1994/05/27 08:41:05 glass Exp $
42 */
43
44/*
45 * Location of the users' stored
46 * registers relative to ZERO.
47 * Usage is p->p_regs[XX].
48 */
49#define ZERO	0
50#define AST	1
51#define V0	2
52#define V1	3
53#define A0	4
54#define A1	5
55#define A2	6
56#define A3	7
57#define T0	8
58#define T1	9
59#define T2	10
60#define T3	11
61#define T4	12
62#define T5	13
63#define T6	14
64#define T7	15
65#define S0	16
66#define S1	17
67#define S2	18
68#define S3	19
69#define S4	20
70#define S5	21
71#define S6	22
72#define S7	23
73#define T8	24
74#define T9	25
75#define K0	26
76#define K1	27
77#define GP	28
78#define SP	29
79#define S8	30
80#define RA	31
81#define MULLO	32
82#define MULHI	33
83#define	PC	34
84#define	SR	35
85#define	PS	35	/* alias for SR */
86#define	F0	36
87#define	F1	37
88#define	F2	38
89#define	F3	39
90#define	F4	40
91#define	F5	41
92#define	F6	42
93#define	F7	43
94#define	F8	44
95#define	F9	45
96#define	F10	46
97#define	F11	47
98#define	F12	48
99#define	F13	49
100#define	F14	50
101#define	F15	51
102#define	F16	52
103#define	F17	53
104#define	F18	54
105#define	F19	55
106#define	F20	56
107#define	F21	57
108#define	F22	58
109#define	F23	59
110#define	F24	60
111#define	F25	61
112#define	F26	62
113#define	F27	63
114#define	F28	64
115#define	F29	65
116#define	F30	66
117#define	F31	67
118#define	FSR	68
119
120#ifdef IPCREG
121#define	NIPCREG 69
122int ipcreg[NIPCREG] = {
123	ZERO, AST, V0, V1, A0, A1, A2, A3, T0, T1, T2, T3, T4, T5, T6, T7,
124	S0, S1, S2, S3, S4, S5, S6, S7, T8, T9, K0, K1, GP, SP, S8, RA,
125	MULLO, MULHI, PC,
126	F0, F1, F2, F3, F4, F5, F6, F7,
127	F8, F9, F10, F11, F12, F13, F14, F15,
128	F16, F17, F18, F19, F20, F21, F22, F23,
129	F24, F25, F26, F27, F28, F29, F30, F31, FSR,
130};
131#endif
132
133#ifdef LANGUAGE_C
134/*
135 * Register set accessible via /proc/$pid/reg
136 */
137struct reg {
138        int     r_regs[69];	/* numbered as above */
139};
140#endif /* LANGUAGE_C */
141