Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/parisc/include/uapi/asm/ptrace.h
26305 views
1
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2
/* written by Philipp Rumpf, Copyright (C) 1999 SuSE GmbH Nuernberg
3
** Copyright (C) 2000 Grant Grundler, Hewlett-Packard
4
*/
5
#ifndef _UAPI_PARISC_PTRACE_H
6
#define _UAPI_PARISC_PTRACE_H
7
8
9
#include <linux/types.h>
10
11
/* This struct defines the way the registers are stored on the
12
* stack during a system call.
13
*
14
* N.B. gdb/strace care about the size and offsets within this
15
* structure. If you change things, you may break object compatibility
16
* for those applications.
17
*
18
* Please do NOT use this structure for future programs, but use
19
* user_regs_struct (see below) instead.
20
*
21
* It can be accessed through PTRACE_PEEKUSR/PTRACE_POKEUSR only.
22
*/
23
24
struct pt_regs {
25
unsigned long gr[32]; /* PSW is in gr[0] */
26
__u64 fr[32];
27
unsigned long sr[ 8];
28
unsigned long iasq[2];
29
unsigned long iaoq[2];
30
unsigned long cr27;
31
unsigned long pad0; /* available for other uses */
32
unsigned long orig_r28;
33
unsigned long ksp;
34
unsigned long kpc;
35
unsigned long sar; /* CR11 */
36
unsigned long iir; /* CR19 */
37
unsigned long isr; /* CR20 */
38
unsigned long ior; /* CR21 */
39
unsigned long ipsw; /* CR22 */
40
};
41
42
/**
43
* struct user_regs_struct - User general purpose registers
44
*
45
* This is the user-visible general purpose register state structure
46
* which is used to define the elf_gregset_t.
47
*
48
* It can be accessed through PTRACE_GETREGSET with NT_PRSTATUS
49
* and through PTRACE_GETREGS.
50
*/
51
struct user_regs_struct {
52
unsigned long gr[32]; /* PSW is in gr[0] */
53
unsigned long sr[8];
54
unsigned long iaoq[2];
55
unsigned long iasq[2];
56
unsigned long sar; /* CR11 */
57
unsigned long iir; /* CR19 */
58
unsigned long isr; /* CR20 */
59
unsigned long ior; /* CR21 */
60
unsigned long ipsw; /* CR22 */
61
unsigned long cr0;
62
unsigned long cr24, cr25, cr26, cr27, cr28, cr29, cr30, cr31;
63
unsigned long cr8, cr9, cr12, cr13, cr10, cr15;
64
unsigned long _pad[80-64]; /* pad to ELF_NGREG (80) */
65
};
66
67
/**
68
* struct user_fp_struct - User floating point registers
69
*
70
* This is the user-visible floating point register state structure.
71
* It uses the same layout and size as elf_fpregset_t.
72
*
73
* It can be accessed through PTRACE_GETREGSET with NT_PRFPREG
74
* and through PTRACE_GETFPREGS.
75
*/
76
struct user_fp_struct {
77
__u64 fr[32];
78
};
79
80
81
/*
82
* The numbers chosen here are somewhat arbitrary but absolutely MUST
83
* not overlap with any of the number assigned in <linux/ptrace.h>.
84
*
85
* These ones are taken from IA-64 on the assumption that theirs are
86
* the most correct (and we also want to support PTRACE_SINGLEBLOCK
87
* since we have taken branch traps too)
88
*/
89
#define PTRACE_SINGLEBLOCK 12 /* resume execution until next branch */
90
91
#define PTRACE_GETREGS 18
92
#define PTRACE_SETREGS 19
93
#define PTRACE_GETFPREGS 14
94
#define PTRACE_SETFPREGS 15
95
96
#endif /* _UAPI_PARISC_PTRACE_H */
97
98