hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
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
269
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#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 */