0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef _UAPI_ASM_PTRACE_H
0011 #define _UAPI_ASM_PTRACE_H
0012
0013 #include <linux/types.h>
0014
0015
0016 #define FPR_BASE 32
0017 #define PC 64
0018 #define CAUSE 65
0019 #define BADVADDR 66
0020 #define MMHI 67
0021 #define MMLO 68
0022 #define FPC_CSR 69
0023 #define FPC_EIR 70
0024 #define DSP_BASE 71
0025 #define DSP_CONTROL 77
0026 #define ACX 78
0027
0028
0029
0030
0031
0032
0033 #ifdef __KERNEL__
0034 struct user_pt_regs {
0035 #else
0036 struct pt_regs {
0037 #endif
0038
0039 __u64 regs[32];
0040
0041
0042 __u64 lo;
0043 __u64 hi;
0044 __u64 cp0_epc;
0045 __u64 cp0_badvaddr;
0046 __u64 cp0_status;
0047 __u64 cp0_cause;
0048 } __attribute__ ((aligned (8)));
0049
0050
0051 #define PTRACE_GETREGS 12
0052 #define PTRACE_SETREGS 13
0053 #define PTRACE_GETFPREGS 14
0054 #define PTRACE_SETFPREGS 15
0055
0056
0057
0058 #define PTRACE_OLDSETOPTIONS 21
0059
0060 #define PTRACE_GET_THREAD_AREA 25
0061 #define PTRACE_SET_THREAD_AREA 26
0062
0063
0064 #define PTRACE_PEEKTEXT_3264 0xc0
0065 #define PTRACE_PEEKDATA_3264 0xc1
0066 #define PTRACE_POKETEXT_3264 0xc2
0067 #define PTRACE_POKEDATA_3264 0xc3
0068 #define PTRACE_GET_THREAD_AREA_3264 0xc4
0069
0070
0071 enum pt_watch_style {
0072 pt_watch_style_mips32,
0073 pt_watch_style_mips64
0074 };
0075 struct mips32_watch_regs {
0076 unsigned int watchlo[8];
0077
0078 unsigned short watchhi[8];
0079
0080
0081
0082
0083
0084
0085 unsigned short watch_masks[8];
0086
0087 unsigned int num_valid;
0088 } __attribute__((aligned(8)));
0089
0090 struct mips64_watch_regs {
0091 unsigned long long watchlo[8];
0092 unsigned short watchhi[8];
0093 unsigned short watch_masks[8];
0094 unsigned int num_valid;
0095 } __attribute__((aligned(8)));
0096
0097 struct pt_watch_regs {
0098 enum pt_watch_style style;
0099 union {
0100 struct mips32_watch_regs mips32;
0101 struct mips64_watch_regs mips64;
0102 };
0103 };
0104
0105 #define PTRACE_GET_WATCH_REGS 0xd0
0106 #define PTRACE_SET_WATCH_REGS 0xd1
0107
0108
0109 #endif