aboutsummaryrefslogtreecommitdiff
path: root/arch/ia64/include/asm/ptrace_offsets.h
blob: b712773c759e9748e3a0f25234eb670cf1700c9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
#ifndef _ASM_IA64_PTRACE_OFFSETS_H
#define _ASM_IA64_PTRACE_OFFSETS_H

/*
 * Copyright (C) 1999, 2003 Hewlett-Packard Co
 *	David Mosberger-Tang <davidm@hpl.hp.com>
 */
/*
 * The "uarea" that can be accessed via PEEKUSER and POKEUSER is a
 * virtual structure that would have the following definition:
 *
 *	struct uarea {
 *		struct ia64_fpreg fph[96];		// f32-f127
 *		unsigned long nat_bits;
 *		unsigned long empty1;
 *		struct ia64_fpreg f2;			// f2-f5
 *			:
 *		struct ia64_fpreg f5;
 *		struct ia64_fpreg f10;			// f10-f31
 *			:
 *		struct ia64_fpreg f31;
 *		unsigned long r4;			// r4-r7
 *			:
 *		unsigned long r7;
 *		unsigned long b1;			// b1-b5
 *			:
 *		unsigned long b5;
 *		unsigned long ar_ec;
 *		unsigned long ar_lc;
 *		unsigned long empty2[5];
 *		unsigned long cr_ipsr;
 *		unsigned long cr_iip;
 *		unsigned long cfm;
 *		unsigned long ar_unat;
 *		unsigned long ar_pfs;
 *		unsigned long ar_rsc;
 *		unsigned long ar_rnat;
 *		unsigned long ar_bspstore;
 *		unsigned long pr;
 *		unsigned long b6;
 *		unsigned long ar_bsp;
 *		unsigned long r1;
 *		unsigned long r2;
 *		unsigned long r3;
 *		unsigned long r12;
 *		unsigned long r13;
 *		unsigned long r14;
 *		unsigned long r15;
 *		unsigned long r8;
 *		unsigned long r9;
 *		unsigned long r10;
 *		unsigned long r11;
 *		unsigned long r16;
 *			:
 *		unsigned long r31;
 *		unsigned long ar_ccv;
 *		unsigned long ar_fpsr;
 *		unsigned long b0;
 *		unsigned long b7;
 *		unsigned long f6;
 *		unsigned long f7;
 *		unsigned long f8;
 *		unsigned long f9;
 *		unsigned long ar_csd;
 *		unsigned long ar_ssd;
 *		unsigned long rsvd1[710];
 *		unsigned long dbr[8];
 *		unsigned long rsvd2[504];
 *		unsigned long ibr[8];
 *		unsigned long rsvd3[504];
 *		unsigned long pmd[4];
 *	}
 */

/* fph: */
#define PT_F32			0x0000
#define PT_F33			0x0010
#define PT_F34			0x0020
#define PT_F35			0x0030
#define PT_F36			0x0040
#define PT_F37			0x0050
#define PT_F38			0x0060
#define PT_F39			0x0070
#define PT_F40			0x0080
#define PT_F41			0x0090
#define PT_F42			0x00a0
#define PT_F43			0x00b0
#define PT_F44			0x00c0
#define PT_F45			0x00d0
#define PT_F46			0x00e0
#define PT_F47			0x00f0
#define PT_F48			0x0100
#define PT_F49			0x0110
#define PT_F50			0x0120
#define PT_F51			0x0130
#define PT_F52			0x0140
#define PT_F53			0x0150
#define PT_F54			0x0160
#define PT_F55			0x0170
#define PT_F56			0x0180
#define PT_F57			0x0190
#define PT_F58			0x01a0
#define PT_F59			0x01b0
#define PT_F60			0x01c0
#define PT_F61			0x01d0
#define PT_F62			0x01e0
#define PT_F63			0x01f0
#define PT_F64			0x0200
#define PT_F65			0x0210
#define PT_F66			0x0220
#define PT_F67			0x0230
#define PT_F68			0x0240
#define PT_F69			0x0250
#define PT_F70			0x0260
#define PT_F71			0x0270
#define PT_F72			0x0280
#define PT_F73			0x0290
#define PT_F74			0x02a0
#define PT_F75			0x02b0
#define PT_F76			0x02c0
#define PT_F77			0x02d0
#define PT_F78			0x02e0
#define PT_F79			0x02f0
#define PT_F80			0x0300
#define PT_F81			0x0310
#define PT_F82			0x0320
#define PT_F83			0x0330
#define PT_F84			0x0340
#define PT_F85			0x0350
#define PT_F86			0x0360
#define PT_F87			0x0370
#define PT_F88			0x0380
#define PT_F89			0x0390
#define PT_F90			0x03a0
#define PT_F91			0x03b0
#define PT_F92			0x03c0
#define PT_F93			0x03d0
#define PT_F94			0x03e0
#define PT_F95			0x03f0
#define PT_F96			0x0400
#define PT_F97			0x0410
#define PT_F98			0x0420
#define PT_F99			0x0430
#define PT_F100			0x0440
#define PT_F101			0x0450
#define PT_F102			0x0460
#define PT_F103			0x0470
#define PT_F104			0x0480
#define PT_F105			0x0490
#define PT_F106			0x04a0
#define PT_F107			0x04b0
#define PT_F108			0x04c0
#define PT_F109			0x04d0
#define PT_F110			0x04e0
#define PT_F111			0x04f0
#define PT_F112			0x0500
#define PT_F113			0x0510
#define PT_F114			0x0520
#define PT_F115			0x0530
#define PT_F116			0x0540
#define PT_F117			0x0550
#define PT_F118			0x0560
#define PT_F119			0x0570
#define PT_F120			0x0580
#define PT_F121			0x0590
#define PT_F122			0x05a0
#define PT_F123			0x05b0
#define PT_F124			0x05c0
#define PT_F125			0x05d0
#define PT_F126			0x05e0
#define PT_F127			0x05f0

#define PT_NAT_BITS		0x0600

#define PT_F2			0x0610
#define PT_F3			0x0620
#define PT_F4			0x0630
#define PT_F5			0x0640
#define PT_F10			0x0650
#define PT_F11			0x0660
#define PT_F12			0x0670
#define PT_F13			0x0680
#define PT_F14			0x0690
#define PT_F15			0x06a0
#define PT_F16			0x06b0
#define PT_F17			0x06c0
#define PT_F18			0x06d0
#define PT_F19			0x06e0
#define PT_F20			0x06f0
#define PT_F21			0x0700
#define PT_F22			0x0710
#define PT_F23			0x0720
#define PT_F24			0x0730
#define PT_F25			0x0740
#define PT_F26			0x0750
#define PT_F27			0x0760
#define PT_F28			0x0770
#define PT_F29			0x0780
#define PT_F30			0x0790
#define PT_F31			0x07a0
#define PT_R4			0x07b0
#define PT_R5			0x07b8
#define PT_R6			0x07c0
#define PT_R7			0x07c8

#define PT_B1			0x07d8
#define PT_B2			0x07e0
#define PT_B3			0x07e8
#define PT_B4			0x07f0
#define PT_B5			0x07f8

#define PT_AR_EC		0x0800
#define PT_AR_LC		0x0808

#define PT_CR_IPSR		0x0830
#define PT_CR_IIP		0x0838
#define PT_CFM			0x0840
#define PT_AR_UNAT		0x0848
#define PT_AR_PFS		0x0850
#define PT_AR_RSC		0x0858
#define PT_AR_RNAT		0x0860
#define PT_AR_BSPSTORE		0x0868
#define PT_PR			0x0870
#define PT_B6			0x0878
#define PT_AR_BSP		0x0880	/* note: this points to the *end* of the backing store! */
#define PT_R1			0x0888
#define PT_R2			0x0890
#define PT_R3			0x0898
#define PT_R12			0x08a0
#define PT_R13			0x08a8
#define PT_R14			0x08b0
#define PT_R15			0x08b8
#define PT_R8 			0x08c0
#define PT_R9			0x08c8
#define PT_R10			0x08d0
#define PT_R11			0x08d8
#define PT_R16			0x08e0
#define PT_R17			0x08e8
#define PT_R18			0x08f0
#define PT_R19			0x08f8
#define PT_R20			0x0900
#define PT_R21			0x0908
#define PT_R22			0x0910
#define PT_R23			0x0918
#define PT_R24			0x0920
#define PT_R25			0x0928
#define PT_R26			0x0930
#define PT_R27			0x0938
#define PT_R28			0x0940
#define PT_R29			0x0948
#define PT_R30			0x0950
#define PT_R31			0x0958
#define PT_AR_CCV		0x0960
#define PT_AR_FPSR		0x0968
#define PT_B0			0x0970
#define PT_B7			0x0978
#define PT_F6			0x0980
#define PT_F7			0x0990
#define PT_F8			0x09a0
#define PT_F9			0x09b0
#define PT_AR_CSD		0x09c0
#define PT_AR_SSD		0x09c8

#define PT_DBR			0x2000	/* data breakpoint registers */
#define PT_IBR			0x3000	/* instruction breakpoint registers */
#define PT_PMD			0x4000	/* performance monitoring counters */

#endif /* _ASM_IA64_PTRACE_OFFSETS_H */