~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/nios2/include/uapi/asm/ptrace.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/nios2/include/uapi/asm/ptrace.h (Architecture i386) and /arch/sparc/include/uapi/asm/ptrace.h (Architecture sparc)


  1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux      1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2 /*                                             !!   2 #ifndef _UAPI__SPARC_PTRACE_H
  3  * Copyright (C) 2010 Tobias Klauser <tklauser !!   3 #define _UAPI__SPARC_PTRACE_H
  4  * Copyright (C) 2004 Microtronix Datacom Ltd  !!   4 
  5  *                                             !!   5 #if defined(__sparc__) && defined(__arch64__)
  6  * based on m68k asm/processor.h               !!   6 /* 64 bit sparc */
  7  *                                             !!   7 #include <asm/pstate.h>
  8  * This file is subject to the terms and condi !!   8 
  9  * License.  See the file "COPYING" in the mai !!   9 /* This struct defines the way the registers are stored on the
 10  * for more details.                           !!  10  * stack during a system call and basically all traps.
 11  */                                                11  */
 12                                                    12 
 13 #ifndef _UAPI_ASM_NIOS2_PTRACE_H               !!  13 /* This magic value must have the low 9 bits clear,
 14 #define _UAPI_ASM_NIOS2_PTRACE_H               !!  14  * as that is where we encode the %tt value, see below.
                                                   >>  15  */
                                                   >>  16 #define PT_REGS_MAGIC 0x57ac6c00
 15                                                    17 
 16 #ifndef __ASSEMBLY__                               18 #ifndef __ASSEMBLY__
 17                                                    19 
 18 #include <linux/types.h>                           20 #include <linux/types.h>
 19                                                    21 
 20 /*                                             !!  22 struct pt_regs {
 21  * Register numbers used by 'ptrace' system ca !!  23         unsigned long u_regs[16]; /* globals and ins */
                                                   >>  24         unsigned long tstate;
                                                   >>  25         unsigned long tpc;
                                                   >>  26         unsigned long tnpc;
                                                   >>  27         unsigned int y;
                                                   >>  28 
                                                   >>  29         /* We encode a magic number, PT_REGS_MAGIC, along
                                                   >>  30          * with the %tt (trap type) register value at trap
                                                   >>  31          * entry time.  The magic number allows us to identify
                                                   >>  32          * accurately a trap stack frame in the stack
                                                   >>  33          * unwinder, and the %tt value allows us to test
                                                   >>  34          * things like "in a system call" etc. for an arbitray
                                                   >>  35          * process.
                                                   >>  36          *
                                                   >>  37          * The PT_REGS_MAGIC is chosen such that it can be
                                                   >>  38          * loaded completely using just a sethi instruction.
                                                   >>  39          */
                                                   >>  40         unsigned int magic;
                                                   >>  41 };
                                                   >>  42 
                                                   >>  43 struct pt_regs32 {
                                                   >>  44         unsigned int psr;
                                                   >>  45         unsigned int pc;
                                                   >>  46         unsigned int npc;
                                                   >>  47         unsigned int y;
                                                   >>  48         unsigned int u_regs[16]; /* globals and ins */
                                                   >>  49 };
                                                   >>  50 
                                                   >>  51 /* A V9 register window */
                                                   >>  52 struct reg_window {
                                                   >>  53         unsigned long locals[8];
                                                   >>  54         unsigned long ins[8];
                                                   >>  55 };
                                                   >>  56 
                                                   >>  57 /* A 32-bit register window. */
                                                   >>  58 struct reg_window32 {
                                                   >>  59         unsigned int locals[8];
                                                   >>  60         unsigned int ins[8];
                                                   >>  61 };
                                                   >>  62 
                                                   >>  63 /* A V9 Sparc stack frame */
                                                   >>  64 struct sparc_stackf {
                                                   >>  65         unsigned long locals[8];
                                                   >>  66         unsigned long ins[6];
                                                   >>  67         struct sparc_stackf *fp;
                                                   >>  68         unsigned long callers_pc;
                                                   >>  69         char *structptr;
                                                   >>  70         unsigned long xargs[6];
                                                   >>  71         unsigned long xxargs[1];
                                                   >>  72 };
                                                   >>  73 
                                                   >>  74 /* A 32-bit Sparc stack frame */
                                                   >>  75 struct sparc_stackf32 {
                                                   >>  76         unsigned int locals[8];
                                                   >>  77         unsigned int ins[6];
                                                   >>  78         unsigned int fp;
                                                   >>  79         unsigned int callers_pc;
                                                   >>  80         unsigned int structptr;
                                                   >>  81         unsigned int xargs[6];
                                                   >>  82         unsigned int xxargs[1];
                                                   >>  83 };
                                                   >>  84 
                                                   >>  85 struct sparc_trapf {
                                                   >>  86         unsigned long locals[8];
                                                   >>  87         unsigned long ins[8];
                                                   >>  88         unsigned long _unused;
                                                   >>  89         struct pt_regs *regs;
                                                   >>  90 };
                                                   >>  91 #endif /* (!__ASSEMBLY__) */
                                                   >>  92 #else
                                                   >>  93 /* 32 bit sparc */
                                                   >>  94 
                                                   >>  95 #include <asm/psr.h>
                                                   >>  96 
                                                   >>  97 /* This struct defines the way the registers are stored on the
                                                   >>  98  * stack during a system call and basically all traps.
 22  */                                                99  */
                                                   >> 100 #ifndef __ASSEMBLY__
                                                   >> 101 
                                                   >> 102 #include <linux/types.h>
 23                                                   103 
 24 /* GP registers */                             !! 104 struct pt_regs {
 25 #define PTR_R0          0                      !! 105         unsigned long psr;
 26 #define PTR_R1          1                      !! 106         unsigned long pc;
 27 #define PTR_R2          2                      !! 107         unsigned long npc;
 28 #define PTR_R3          3                      !! 108         unsigned long y;
 29 #define PTR_R4          4                      !! 109         unsigned long u_regs[16]; /* globals and ins */
 30 #define PTR_R5          5                      << 
 31 #define PTR_R6          6                      << 
 32 #define PTR_R7          7                      << 
 33 #define PTR_R8          8                      << 
 34 #define PTR_R9          9                      << 
 35 #define PTR_R10         10                     << 
 36 #define PTR_R11         11                     << 
 37 #define PTR_R12         12                     << 
 38 #define PTR_R13         13                     << 
 39 #define PTR_R14         14                     << 
 40 #define PTR_R15         15                     << 
 41 #define PTR_R16         16                     << 
 42 #define PTR_R17         17                     << 
 43 #define PTR_R18         18                     << 
 44 #define PTR_R19         19                     << 
 45 #define PTR_R20         20                     << 
 46 #define PTR_R21         21                     << 
 47 #define PTR_R22         22                     << 
 48 #define PTR_R23         23                     << 
 49 #define PTR_R24         24                     << 
 50 #define PTR_R25         25                     << 
 51 #define PTR_GP          26                     << 
 52 #define PTR_SP          27                     << 
 53 #define PTR_FP          28                     << 
 54 #define PTR_EA          29                     << 
 55 #define PTR_BA          30                     << 
 56 #define PTR_RA          31                     << 
 57 /* Control registers */                        << 
 58 #define PTR_PC          32                     << 
 59 #define PTR_STATUS      33                     << 
 60 #define PTR_ESTATUS     34                     << 
 61 #define PTR_BSTATUS     35                     << 
 62 #define PTR_IENABLE     36                     << 
 63 #define PTR_IPENDING    37                     << 
 64 #define PTR_CPUID       38                     << 
 65 #define PTR_CTL6        39                     << 
 66 #define PTR_EXCEPTION   40                     << 
 67 #define PTR_PTEADDR     41                     << 
 68 #define PTR_TLBACC      42                     << 
 69 #define PTR_TLBMISC     43                     << 
 70 #define PTR_ECCINJ      44                     << 
 71 #define PTR_BADADDR     45                     << 
 72 #define PTR_CONFIG      46                     << 
 73 #define PTR_MPUBASE     47                     << 
 74 #define PTR_MPUACC      48                     << 
 75                                                << 
 76 #define NUM_PTRACE_REG (PTR_MPUACC + 1)        << 
 77                                                << 
 78 /* User structures for general purpose registe << 
 79 struct user_pt_regs {                          << 
 80         __u32           regs[49];              << 
 81 };                                                110 };
 82                                                   111 
                                                   >> 112 /* A 32-bit register window. */
                                                   >> 113 struct reg_window32 {
                                                   >> 114         unsigned long locals[8];
                                                   >> 115         unsigned long ins[8];
                                                   >> 116 };
                                                   >> 117 
                                                   >> 118 /* A Sparc stack frame */
                                                   >> 119 struct sparc_stackf {
                                                   >> 120         unsigned long locals[8];
                                                   >> 121         unsigned long ins[6];
                                                   >> 122         struct sparc_stackf *fp;
                                                   >> 123         unsigned long callers_pc;
                                                   >> 124         char *structptr;
                                                   >> 125         unsigned long xargs[6];
                                                   >> 126         unsigned long xxargs[1];
                                                   >> 127 };
                                                   >> 128 #endif /* (!__ASSEMBLY__) */
                                                   >> 129 
                                                   >> 130 #endif /* (defined(__sparc__) && defined(__arch64__))*/
                                                   >> 131 
                                                   >> 132 #ifndef __ASSEMBLY__
                                                   >> 133 
                                                   >> 134 #define TRACEREG_SZ     sizeof(struct pt_regs)
                                                   >> 135 #define STACKFRAME_SZ   sizeof(struct sparc_stackf)
                                                   >> 136 
                                                   >> 137 #define TRACEREG32_SZ   sizeof(struct pt_regs32)
                                                   >> 138 #define STACKFRAME32_SZ sizeof(struct sparc_stackf32)
                                                   >> 139 
                                                   >> 140 #endif /* (!__ASSEMBLY__) */
                                                   >> 141 
                                                   >> 142 #define UREG_G0        0
                                                   >> 143 #define UREG_G1        1
                                                   >> 144 #define UREG_G2        2
                                                   >> 145 #define UREG_G3        3
                                                   >> 146 #define UREG_G4        4
                                                   >> 147 #define UREG_G5        5
                                                   >> 148 #define UREG_G6        6
                                                   >> 149 #define UREG_G7        7
                                                   >> 150 #define UREG_I0        8
                                                   >> 151 #define UREG_I1        9
                                                   >> 152 #define UREG_I2        10
                                                   >> 153 #define UREG_I3        11
                                                   >> 154 #define UREG_I4        12
                                                   >> 155 #define UREG_I5        13
                                                   >> 156 #define UREG_I6        14
                                                   >> 157 #define UREG_I7        15
                                                   >> 158 #define UREG_FP        UREG_I6
                                                   >> 159 #define UREG_RETPC     UREG_I7
                                                   >> 160 
                                                   >> 161 #if defined(__sparc__) && defined(__arch64__)
                                                   >> 162 /* 64 bit sparc */
                                                   >> 163 
                                                   >> 164 #ifndef __ASSEMBLY__
                                                   >> 165 
                                                   >> 166 
                                                   >> 167 #else /* __ASSEMBLY__ */
                                                   >> 168 /* For assembly code. */
                                                   >> 169 #define TRACEREG_SZ             0xa0
                                                   >> 170 #define STACKFRAME_SZ           0xc0
                                                   >> 171 
                                                   >> 172 #define TRACEREG32_SZ           0x50
                                                   >> 173 #define STACKFRAME32_SZ         0x60
 83 #endif /* __ASSEMBLY__ */                         174 #endif /* __ASSEMBLY__ */
 84 #endif /* _UAPI_ASM_NIOS2_PTRACE_H */          !! 175 
                                                   >> 176 #else /* (defined(__sparc__) && defined(__arch64__)) */
                                                   >> 177 
                                                   >> 178 /* 32 bit sparc */
                                                   >> 179 
                                                   >> 180 #ifndef __ASSEMBLY__
                                                   >> 181 
                                                   >> 182 
                                                   >> 183 #else /* (!__ASSEMBLY__) */
                                                   >> 184 /* For assembly code. */
                                                   >> 185 #define TRACEREG_SZ       0x50
                                                   >> 186 #define STACKFRAME_SZ     0x60
                                                   >> 187 #endif /* (!__ASSEMBLY__) */
                                                   >> 188 
                                                   >> 189 #endif /* (defined(__sparc__) && defined(__arch64__)) */
                                                   >> 190 
                                                   >> 191 
                                                   >> 192 /* These are for pt_regs. */
                                                   >> 193 #define PT_V9_G0     0x00
                                                   >> 194 #define PT_V9_G1     0x08
                                                   >> 195 #define PT_V9_G2     0x10
                                                   >> 196 #define PT_V9_G3     0x18
                                                   >> 197 #define PT_V9_G4     0x20
                                                   >> 198 #define PT_V9_G5     0x28
                                                   >> 199 #define PT_V9_G6     0x30
                                                   >> 200 #define PT_V9_G7     0x38
                                                   >> 201 #define PT_V9_I0     0x40
                                                   >> 202 #define PT_V9_I1     0x48
                                                   >> 203 #define PT_V9_I2     0x50
                                                   >> 204 #define PT_V9_I3     0x58
                                                   >> 205 #define PT_V9_I4     0x60
                                                   >> 206 #define PT_V9_I5     0x68
                                                   >> 207 #define PT_V9_I6     0x70
                                                   >> 208 #define PT_V9_FP     PT_V9_I6
                                                   >> 209 #define PT_V9_I7     0x78
                                                   >> 210 #define PT_V9_TSTATE 0x80
                                                   >> 211 #define PT_V9_TPC    0x88
                                                   >> 212 #define PT_V9_TNPC   0x90
                                                   >> 213 #define PT_V9_Y      0x98
                                                   >> 214 #define PT_V9_MAGIC  0x9c
                                                   >> 215 #define PT_TSTATE       PT_V9_TSTATE
                                                   >> 216 #define PT_TPC          PT_V9_TPC
                                                   >> 217 #define PT_TNPC         PT_V9_TNPC
                                                   >> 218 
                                                   >> 219 /* These for pt_regs32. */
                                                   >> 220 #define PT_PSR    0x0
                                                   >> 221 #define PT_PC     0x4
                                                   >> 222 #define PT_NPC    0x8
                                                   >> 223 #define PT_Y      0xc
                                                   >> 224 #define PT_G0     0x10
                                                   >> 225 #define PT_WIM    PT_G0
                                                   >> 226 #define PT_G1     0x14
                                                   >> 227 #define PT_G2     0x18
                                                   >> 228 #define PT_G3     0x1c
                                                   >> 229 #define PT_G4     0x20
                                                   >> 230 #define PT_G5     0x24
                                                   >> 231 #define PT_G6     0x28
                                                   >> 232 #define PT_G7     0x2c
                                                   >> 233 #define PT_I0     0x30
                                                   >> 234 #define PT_I1     0x34
                                                   >> 235 #define PT_I2     0x38
                                                   >> 236 #define PT_I3     0x3c
                                                   >> 237 #define PT_I4     0x40
                                                   >> 238 #define PT_I5     0x44
                                                   >> 239 #define PT_I6     0x48
                                                   >> 240 #define PT_FP     PT_I6
                                                   >> 241 #define PT_I7     0x4c
                                                   >> 242 
                                                   >> 243 /* Reg_window offsets */
                                                   >> 244 #define RW_V9_L0     0x00
                                                   >> 245 #define RW_V9_L1     0x08
                                                   >> 246 #define RW_V9_L2     0x10
                                                   >> 247 #define RW_V9_L3     0x18
                                                   >> 248 #define RW_V9_L4     0x20
                                                   >> 249 #define RW_V9_L5     0x28
                                                   >> 250 #define RW_V9_L6     0x30
                                                   >> 251 #define RW_V9_L7     0x38
                                                   >> 252 #define RW_V9_I0     0x40
                                                   >> 253 #define RW_V9_I1     0x48
                                                   >> 254 #define RW_V9_I2     0x50
                                                   >> 255 #define RW_V9_I3     0x58
                                                   >> 256 #define RW_V9_I4     0x60
                                                   >> 257 #define RW_V9_I5     0x68
                                                   >> 258 #define RW_V9_I6     0x70
                                                   >> 259 #define RW_V9_I7     0x78
                                                   >> 260 
                                                   >> 261 #define RW_L0     0x00
                                                   >> 262 #define RW_L1     0x04
                                                   >> 263 #define RW_L2     0x08
                                                   >> 264 #define RW_L3     0x0c
                                                   >> 265 #define RW_L4     0x10
                                                   >> 266 #define RW_L5     0x14
                                                   >> 267 #define RW_L6     0x18
                                                   >> 268 #define RW_L7     0x1c
                                                   >> 269 #define RW_I0     0x20
                                                   >> 270 #define RW_I1     0x24
                                                   >> 271 #define RW_I2     0x28
                                                   >> 272 #define RW_I3     0x2c
                                                   >> 273 #define RW_I4     0x30
                                                   >> 274 #define RW_I5     0x34
                                                   >> 275 #define RW_I6     0x38
                                                   >> 276 #define RW_I7     0x3c
                                                   >> 277 
                                                   >> 278 /* Stack_frame offsets */
                                                   >> 279 #define SF_V9_L0     0x00
                                                   >> 280 #define SF_V9_L1     0x08
                                                   >> 281 #define SF_V9_L2     0x10
                                                   >> 282 #define SF_V9_L3     0x18
                                                   >> 283 #define SF_V9_L4     0x20
                                                   >> 284 #define SF_V9_L5     0x28
                                                   >> 285 #define SF_V9_L6     0x30
                                                   >> 286 #define SF_V9_L7     0x38
                                                   >> 287 #define SF_V9_I0     0x40
                                                   >> 288 #define SF_V9_I1     0x48
                                                   >> 289 #define SF_V9_I2     0x50
                                                   >> 290 #define SF_V9_I3     0x58
                                                   >> 291 #define SF_V9_I4     0x60
                                                   >> 292 #define SF_V9_I5     0x68
                                                   >> 293 #define SF_V9_FP     0x70
                                                   >> 294 #define SF_V9_PC     0x78
                                                   >> 295 #define SF_V9_RETP   0x80
                                                   >> 296 #define SF_V9_XARG0  0x88
                                                   >> 297 #define SF_V9_XARG1  0x90
                                                   >> 298 #define SF_V9_XARG2  0x98
                                                   >> 299 #define SF_V9_XARG3  0xa0
                                                   >> 300 #define SF_V9_XARG4  0xa8
                                                   >> 301 #define SF_V9_XARG5  0xb0
                                                   >> 302 #define SF_V9_XXARG  0xb8
                                                   >> 303 
                                                   >> 304 #define SF_L0     0x00
                                                   >> 305 #define SF_L1     0x04
                                                   >> 306 #define SF_L2     0x08
                                                   >> 307 #define SF_L3     0x0c
                                                   >> 308 #define SF_L4     0x10
                                                   >> 309 #define SF_L5     0x14
                                                   >> 310 #define SF_L6     0x18
                                                   >> 311 #define SF_L7     0x1c
                                                   >> 312 #define SF_I0     0x20
                                                   >> 313 #define SF_I1     0x24
                                                   >> 314 #define SF_I2     0x28
                                                   >> 315 #define SF_I3     0x2c
                                                   >> 316 #define SF_I4     0x30
                                                   >> 317 #define SF_I5     0x34
                                                   >> 318 #define SF_FP     0x38
                                                   >> 319 #define SF_PC     0x3c
                                                   >> 320 #define SF_RETP   0x40
                                                   >> 321 #define SF_XARG0  0x44
                                                   >> 322 #define SF_XARG1  0x48
                                                   >> 323 #define SF_XARG2  0x4c
                                                   >> 324 #define SF_XARG3  0x50
                                                   >> 325 #define SF_XARG4  0x54
                                                   >> 326 #define SF_XARG5  0x58
                                                   >> 327 #define SF_XXARG  0x5c
                                                   >> 328 
                                                   >> 329 
                                                   >> 330 /* Stuff for the ptrace system call */
                                                   >> 331 #define PTRACE_SPARC_DETACH       11
                                                   >> 332 #define PTRACE_GETREGS            12
                                                   >> 333 #define PTRACE_SETREGS            13
                                                   >> 334 #define PTRACE_GETFPREGS          14
                                                   >> 335 #define PTRACE_SETFPREGS          15
                                                   >> 336 #define PTRACE_READDATA           16
                                                   >> 337 #define PTRACE_WRITEDATA          17
                                                   >> 338 #define PTRACE_READTEXT           18
                                                   >> 339 #define PTRACE_WRITETEXT          19
                                                   >> 340 #define PTRACE_GETFPAREGS         20
                                                   >> 341 #define PTRACE_SETFPAREGS         21
                                                   >> 342 
                                                   >> 343 /* There are for debugging 64-bit processes, either from a 32 or 64 bit
                                                   >> 344  * parent.  Thus their complements are for debugging 32-bit processes only.
                                                   >> 345  */
                                                   >> 346 
                                                   >> 347 #define PTRACE_GETREGS64          22
                                                   >> 348 #define PTRACE_SETREGS64          23
                                                   >> 349 /* PTRACE_SYSCALL is 24 */
                                                   >> 350 #define PTRACE_GETFPREGS64        25
                                                   >> 351 #define PTRACE_SETFPREGS64        26
                                                   >> 352 
                                                   >> 353 #endif /* _UAPI__SPARC_PTRACE_H */
 85                                                   354 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php