Merge tag 'v3.9-rc3' into next
[sfrench/cifs-2.6.git] / arch / blackfin / include / uapi / asm / ptrace.h
1 /*
2  * Copyright 2004-2008 Analog Devices Inc.
3  *
4  * Licensed under the GPL-2 or later.
5  */
6
7 #ifndef _UAPI_BFIN_PTRACE_H
8 #define _UAPI_BFIN_PTRACE_H
9
10 /*
11  * GCC defines register number like this:
12  * -----------------------------
13  *       0 - 7 are data registers R0-R7
14  *       8 - 15 are address registers P0-P7
15  *      16 - 31 dsp registers I/B/L0 -- I/B/L3 & M0--M3
16  *      32 - 33 A registers A0 & A1
17  *      34 -    status register
18  * -----------------------------
19  *
20  * We follows above, except:
21  *      32-33 --- Low 32-bit of A0&1
22  *      34-35 --- High 8-bit of A0&1
23  */
24
25 #ifndef __ASSEMBLY__
26
27 struct task_struct;
28
29 /* this struct defines the way the registers are stored on the
30    stack during a system call. */
31
32 struct pt_regs {
33         long orig_pc;
34         long ipend;
35         long seqstat;
36         long rete;
37         long retn;
38         long retx;
39         long pc;                /* PC == RETI */
40         long rets;
41         long reserved;          /* Used as scratch during system calls */
42         long astat;
43         long lb1;
44         long lb0;
45         long lt1;
46         long lt0;
47         long lc1;
48         long lc0;
49         long a1w;
50         long a1x;
51         long a0w;
52         long a0x;
53         long b3;
54         long b2;
55         long b1;
56         long b0;
57         long l3;
58         long l2;
59         long l1;
60         long l0;
61         long m3;
62         long m2;
63         long m1;
64         long m0;
65         long i3;
66         long i2;
67         long i1;
68         long i0;
69         long usp;
70         long fp;
71         long p5;
72         long p4;
73         long p3;
74         long p2;
75         long p1;
76         long p0;
77         long r7;
78         long r6;
79         long r5;
80         long r4;
81         long r3;
82         long r2;
83         long r1;
84         long r0;
85         long orig_r0;
86         long orig_p0;
87         long syscfg;
88 };
89
90 /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
91 #define PTRACE_GETREGS            12
92 #define PTRACE_SETREGS            13    /* ptrace signal  */
93
94 #define PTRACE_GETFDPIC           31    /* get the ELF fdpic loadmap address */
95 #define PTRACE_GETFDPIC_EXEC       0    /* [addr] request the executable loadmap */
96 #define PTRACE_GETFDPIC_INTERP     1    /* [addr] request the interpreter loadmap */
97
98 #define PS_S  (0x0002)
99
100
101 #endif                          /* __ASSEMBLY__ */
102
103 /*
104  * Offsets used by 'ptrace' system call interface.
105  */
106
107 #define PT_R0 204
108 #define PT_R1 200
109 #define PT_R2 196
110 #define PT_R3 192
111 #define PT_R4 188
112 #define PT_R5 184
113 #define PT_R6 180
114 #define PT_R7 176
115 #define PT_P0 172
116 #define PT_P1 168
117 #define PT_P2 164
118 #define PT_P3 160
119 #define PT_P4 156
120 #define PT_P5 152
121 #define PT_FP 148
122 #define PT_USP 144
123 #define PT_I0 140
124 #define PT_I1 136
125 #define PT_I2 132
126 #define PT_I3 128
127 #define PT_M0 124
128 #define PT_M1 120
129 #define PT_M2 116
130 #define PT_M3 112
131 #define PT_L0 108
132 #define PT_L1 104
133 #define PT_L2 100
134 #define PT_L3 96
135 #define PT_B0 92
136 #define PT_B1 88
137 #define PT_B2 84
138 #define PT_B3 80
139 #define PT_A0X 76
140 #define PT_A0W 72
141 #define PT_A1X 68
142 #define PT_A1W 64
143 #define PT_LC0 60
144 #define PT_LC1 56
145 #define PT_LT0 52
146 #define PT_LT1 48
147 #define PT_LB0 44
148 #define PT_LB1 40
149 #define PT_ASTAT 36
150 #define PT_RESERVED 32
151 #define PT_RETS 28
152 #define PT_PC 24
153 #define PT_RETX 20
154 #define PT_RETN 16
155 #define PT_RETE 12
156 #define PT_SEQSTAT 8
157 #define PT_IPEND 4
158
159 #define PT_ORIG_R0 208
160 #define PT_ORIG_P0 212
161 #define PT_SYSCFG 216
162 #define PT_TEXT_ADDR 220
163 #define PT_TEXT_END_ADDR 224
164 #define PT_DATA_ADDR 228
165 #define PT_FDPIC_EXEC 232
166 #define PT_FDPIC_INTERP 236
167
168 #define PT_LAST_PSEUDO PT_FDPIC_INTERP
169
170 #endif /* _UAPI_BFIN_PTRACE_H */