Switch the license of all .c files to GPLv3.
[deliverable/binutils-gdb.git] / gdb / gdbserver / linux-ia64-low.c
CommitLineData
0a30fbc4 1/* GNU/Linux/IA64 specific low level interface, for the remote server for GDB.
6aba47ca 2 Copyright (C) 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2007
0a30fbc4
DJ
3 Free Software Foundation, Inc.
4
5 This file is part of GDB.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
0a30fbc4
DJ
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
0a30fbc4
DJ
19
20#include "server.h"
58caa3dc 21#include "linux-low.h"
0a30fbc4
DJ
22
23#ifdef HAVE_SYS_REG_H
24#include <sys/reg.h>
25#endif
26
7fb85e41 27#define ia64_num_regs 462
0a30fbc4
DJ
28
29#include <asm/ptrace_offsets.h>
30
2ec06d2e 31static int ia64_regmap[] =
0a30fbc4
DJ
32 {
33 /* general registers */
34 -1, /* gr0 not available; i.e, it's always zero */
35 PT_R1,
36 PT_R2,
37 PT_R3,
38 PT_R4,
39 PT_R5,
40 PT_R6,
41 PT_R7,
42 PT_R8,
43 PT_R9,
44 PT_R10,
45 PT_R11,
46 PT_R12,
47 PT_R13,
48 PT_R14,
49 PT_R15,
50 PT_R16,
51 PT_R17,
52 PT_R18,
53 PT_R19,
54 PT_R20,
55 PT_R21,
56 PT_R22,
57 PT_R23,
58 PT_R24,
59 PT_R25,
60 PT_R26,
61 PT_R27,
62 PT_R28,
63 PT_R29,
64 PT_R30,
65 PT_R31,
66 /* gr32 through gr127 not directly available via the ptrace interface */
67 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
68 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
69 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
70 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
71 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
72 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
73 /* Floating point registers */
74 -1, -1, /* f0 and f1 not available (f0 is +0.0 and f1 is +1.0) */
75 PT_F2,
76 PT_F3,
77 PT_F4,
78 PT_F5,
79 PT_F6,
80 PT_F7,
81 PT_F8,
82 PT_F9,
83 PT_F10,
84 PT_F11,
85 PT_F12,
86 PT_F13,
87 PT_F14,
88 PT_F15,
89 PT_F16,
90 PT_F17,
91 PT_F18,
92 PT_F19,
93 PT_F20,
94 PT_F21,
95 PT_F22,
96 PT_F23,
97 PT_F24,
98 PT_F25,
99 PT_F26,
100 PT_F27,
101 PT_F28,
102 PT_F29,
103 PT_F30,
104 PT_F31,
105 PT_F32,
106 PT_F33,
107 PT_F34,
108 PT_F35,
109 PT_F36,
110 PT_F37,
111 PT_F38,
112 PT_F39,
113 PT_F40,
114 PT_F41,
115 PT_F42,
116 PT_F43,
117 PT_F44,
118 PT_F45,
119 PT_F46,
120 PT_F47,
121 PT_F48,
122 PT_F49,
123 PT_F50,
124 PT_F51,
125 PT_F52,
126 PT_F53,
127 PT_F54,
128 PT_F55,
129 PT_F56,
130 PT_F57,
131 PT_F58,
132 PT_F59,
133 PT_F60,
134 PT_F61,
135 PT_F62,
136 PT_F63,
137 PT_F64,
138 PT_F65,
139 PT_F66,
140 PT_F67,
141 PT_F68,
142 PT_F69,
143 PT_F70,
144 PT_F71,
145 PT_F72,
146 PT_F73,
147 PT_F74,
148 PT_F75,
149 PT_F76,
150 PT_F77,
151 PT_F78,
152 PT_F79,
153 PT_F80,
154 PT_F81,
155 PT_F82,
156 PT_F83,
157 PT_F84,
158 PT_F85,
159 PT_F86,
160 PT_F87,
161 PT_F88,
162 PT_F89,
163 PT_F90,
164 PT_F91,
165 PT_F92,
166 PT_F93,
167 PT_F94,
168 PT_F95,
169 PT_F96,
170 PT_F97,
171 PT_F98,
172 PT_F99,
173 PT_F100,
174 PT_F101,
175 PT_F102,
176 PT_F103,
177 PT_F104,
178 PT_F105,
179 PT_F106,
180 PT_F107,
181 PT_F108,
182 PT_F109,
183 PT_F110,
184 PT_F111,
185 PT_F112,
186 PT_F113,
187 PT_F114,
188 PT_F115,
189 PT_F116,
190 PT_F117,
191 PT_F118,
192 PT_F119,
193 PT_F120,
194 PT_F121,
195 PT_F122,
196 PT_F123,
197 PT_F124,
198 PT_F125,
199 PT_F126,
200 PT_F127,
201 /* predicate registers - we don't fetch these individually */
202 -1, -1, -1, -1, -1, -1, -1, -1,
203 -1, -1, -1, -1, -1, -1, -1, -1,
204 -1, -1, -1, -1, -1, -1, -1, -1,
205 -1, -1, -1, -1, -1, -1, -1, -1,
206 -1, -1, -1, -1, -1, -1, -1, -1,
207 -1, -1, -1, -1, -1, -1, -1, -1,
208 -1, -1, -1, -1, -1, -1, -1, -1,
209 -1, -1, -1, -1, -1, -1, -1, -1,
210 /* branch registers */
211 PT_B0,
212 PT_B1,
213 PT_B2,
214 PT_B3,
215 PT_B4,
216 PT_B5,
217 PT_B6,
218 PT_B7,
219 /* virtual frame pointer and virtual return address pointer */
220 -1, -1,
221 /* other registers */
222 PT_PR,
223 PT_CR_IIP, /* ip */
224 PT_CR_IPSR, /* psr */
225 PT_CFM, /* cfm */
226 /* kernel registers not visible via ptrace interface (?) */
227 -1, -1, -1, -1, -1, -1, -1, -1,
228 /* hole */
229 -1, -1, -1, -1, -1, -1, -1, -1,
230 PT_AR_RSC,
231 PT_AR_BSP,
232 PT_AR_BSPSTORE,
233 PT_AR_RNAT,
234 -1,
235 -1, /* Not available: FCR, IA32 floating control register */
236 -1, -1,
237 -1, /* Not available: EFLAG */
238 -1, /* Not available: CSD */
239 -1, /* Not available: SSD */
240 -1, /* Not available: CFLG */
241 -1, /* Not available: FSR */
242 -1, /* Not available: FIR */
243 -1, /* Not available: FDR */
244 -1,
245 PT_AR_CCV,
246 -1, -1, -1,
247 PT_AR_UNAT,
248 -1, -1, -1,
249 PT_AR_FPSR,
250 -1, -1, -1,
251 -1, /* Not available: ITC */
252 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
253 -1, -1, -1, -1, -1, -1, -1, -1, -1,
254 PT_AR_PFS,
255 PT_AR_LC,
256 -1, /* Not available: EC, the Epilog Count register */
257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
258 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
259 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
261 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
262 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
263 -1,
0a30fbc4
DJ
264 };
265
2ec06d2e
DJ
266static int
267ia64_cannot_store_register (int regno)
0a30fbc4
DJ
268{
269 return 0;
270}
271
2ec06d2e
DJ
272static int
273ia64_cannot_fetch_register (int regno)
0a30fbc4
DJ
274{
275 return 0;
276}
277
2ec06d2e
DJ
278struct linux_target_ops the_low_target = {
279 ia64_num_regs,
280 ia64_regmap,
281 ia64_cannot_fetch_register,
282 ia64_cannot_store_register,
283};
This page took 0.41278 seconds and 4 git commands to generate.