]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/unix/sysv/linux/mips/sys/user.h
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / mips / sys / user.h
CommitLineData
04277e02 1/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
b16fd2b0
AJ
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
ab84e3ff
PE
15 License along with the GNU C Library. If not, see
16 <http://www.gnu.org/licenses/>. */
b16fd2b0
AJ
17
18#ifndef _SYS_USER_H
19#define _SYS_USER_H 1
20
24c4c341 21#include <sgidefs.h>
94bf0b4a 22#include <stddef.h>
24c4c341 23
b16fd2b0
AJ
24/* The whole purpose of this file is for GDB and GDB only. Don't read
25 too much into it. Don't use it for anything other than GDB unless
26 you know what you are doing. */
27
d25102aa
AO
28/* #include <asm/reg.h> */
29/* Instead of including the kernel header, that will vary depending on
30 whether the 32- or the 64-bit kernel is installed, we paste its
31 contents here. Note that the fact that the file is inline here,
32 instead of included separately, doesn't change in any way the
33 licensing status of a program that includes user.h. Since this is
34 for gdb alone, and gdb is GPLed, no surprises here. */
73a227e2 35#if _MIPS_SIM == _ABIO32
d25102aa
AO
36/*
37 * Various register offset definitions for debuggers, core file
38 * examiners and whatnot.
39 *
40 * This file is subject to the terms and conditions of the GNU General Public
41 * License. See the file "COPYING" in the main directory of this archive
42 * for more details.
43 *
44 * Copyright (C) 1995, 1999 by Ralf Baechle
45 */
46#ifndef __ASM_MIPS_REG_H
47#define __ASM_MIPS_REG_H
48
49/*
50 * This defines/structures correspond to the register layout on stack -
51 * if the order here is changed, it needs to be updated in
52 * include/asm-mips/stackframe.h
53 */
54#define EF_REG0 6
55#define EF_REG1 7
56#define EF_REG2 8
57#define EF_REG3 9
58#define EF_REG4 10
59#define EF_REG5 11
60#define EF_REG6 12
61#define EF_REG7 13
62#define EF_REG8 14
63#define EF_REG9 15
64#define EF_REG10 16
65#define EF_REG11 17
66#define EF_REG12 18
67#define EF_REG13 19
68#define EF_REG14 20
69#define EF_REG15 21
70#define EF_REG16 22
71#define EF_REG17 23
72#define EF_REG18 24
73#define EF_REG19 25
74#define EF_REG20 26
75#define EF_REG21 27
76#define EF_REG22 28
77#define EF_REG23 29
78#define EF_REG24 30
79#define EF_REG25 31
80/*
81 * k0/k1 unsaved
82 */
83#define EF_REG28 34
84#define EF_REG29 35
85#define EF_REG30 36
86#define EF_REG31 37
87
88/*
89 * Saved special registers
90 */
91#define EF_LO 38
92#define EF_HI 39
93
94#define EF_CP0_EPC 40
95#define EF_CP0_BADVADDR 41
96#define EF_CP0_STATUS 42
97#define EF_CP0_CAUSE 43
98
99#define EF_SIZE 180 /* size in bytes */
100
101#endif /* __ASM_MIPS_REG_H */
102
73a227e2 103#else /* _MIPS_SIM != _ABIO32 */
d25102aa
AO
104
105/*
106 * Various register offset definitions for debuggers, core file
107 * examiners and whatnot.
108 *
109 * This file is subject to the terms and conditions of the GNU General Public
110 * License. See the file "COPYING" in the main directory of this archive
111 * for more details.
112 *
113 * Copyright (C) 1995, 1999 Ralf Baechle
114 * Copyright (C) 1995, 1999 Silicon Graphics
115 */
116#ifndef _ASM_REG_H
117#define _ASM_REG_H
118
119/*
120 * This defines/structures correspond to the register layout on stack -
121 * if the order here is changed, it needs to be updated in
122 * include/asm-mips/stackframe.h
123 */
124#define EF_REG0 0
125#define EF_REG1 1
126#define EF_REG2 2
127#define EF_REG3 3
128#define EF_REG4 4
129#define EF_REG5 5
130#define EF_REG6 6
131#define EF_REG7 7
132#define EF_REG8 8
133#define EF_REG9 9
134#define EF_REG10 10
135#define EF_REG11 11
136#define EF_REG12 12
137#define EF_REG13 13
138#define EF_REG14 14
139#define EF_REG15 15
140#define EF_REG16 16
141#define EF_REG17 17
142#define EF_REG18 18
143#define EF_REG19 19
144#define EF_REG20 20
145#define EF_REG21 21
146#define EF_REG22 22
147#define EF_REG23 23
148#define EF_REG24 24
149#define EF_REG25 25
150/*
151 * k0/k1 unsaved
152 */
153#define EF_REG28 28
154#define EF_REG29 29
155#define EF_REG30 30
156#define EF_REG31 31
157
158/*
159 * Saved special registers
160 */
161#define EF_LO 32
162#define EF_HI 33
163
164#define EF_CP0_EPC 34
165#define EF_CP0_BADVADDR 35
166#define EF_CP0_STATUS 36
167#define EF_CP0_CAUSE 37
168
169#define EF_SIZE 304 /* size in bytes */
170
171#endif /* _ASM_REG_H */
172
73a227e2 173#endif /* _MIPS_SIM != _ABIO32 */
d25102aa 174
73a227e2 175#if _MIPS_SIM == _ABIO32
b16fd2b0
AJ
176
177struct user
178{
179 unsigned long regs[EF_SIZE/4+64]; /* integer and fp regs */
180 size_t u_tsize; /* text size (pages) */
181 size_t u_dsize; /* data size (pages) */
182 size_t u_ssize; /* stack size (pages) */
183 unsigned long start_code; /* text starting address */
184 unsigned long start_data; /* data starting address */
185 unsigned long start_stack; /* stack starting address */
186 long int signal; /* signal causing core dump */
187 void* u_ar0; /* help gdb find registers */
188 unsigned long magic; /* identifies a core file */
189 char u_comm[32]; /* user command name */
190};
191
d25102aa
AO
192#else
193
194struct user {
195 __extension__ unsigned long regs[EF_SIZE/8+64]; /* integer and fp regs */
196 __extension__ unsigned long u_tsize; /* text size (pages) */
197 __extension__ unsigned long u_dsize; /* data size (pages) */
198 __extension__ unsigned long u_ssize; /* stack size (pages) */
199 __extension__ unsigned long long start_code; /* text starting address */
200 __extension__ unsigned long long start_data; /* data starting address */
201 __extension__ unsigned long long start_stack; /* stack starting address */
202 __extension__ long long signal; /* signal causing core dump */
203 __extension__ unsigned long long u_ar0; /* help gdb find registers */
204 __extension__ unsigned long long magic; /* identifies a core file */
205 char u_comm[32]; /* user command name */
206};
207
208#endif
209
b16fd2b0 210#endif /* _SYS_USER_H */