|
@@ -19,11 +19,8 @@
|
|
|
#ifndef __ASM_PTRACE_H
|
|
|
#define __ASM_PTRACE_H
|
|
|
|
|
|
-#include <linux/types.h>
|
|
|
+#include <uapi/asm/ptrace.h>
|
|
|
|
|
|
-#include <asm/hwcap.h>
|
|
|
-
|
|
|
-#ifdef __KERNEL__
|
|
|
/* AArch32-specific ptrace requests */
|
|
|
#define COMPAT_PTRACE_GETREGS 12
|
|
|
#define COMPAT_PTRACE_SETREGS 13
|
|
@@ -33,48 +30,9 @@
|
|
|
#define COMPAT_PTRACE_SETVFPREGS 28
|
|
|
#define COMPAT_PTRACE_GETHBPREGS 29
|
|
|
#define COMPAT_PTRACE_SETHBPREGS 30
|
|
|
-#endif
|
|
|
-
|
|
|
-/*
|
|
|
- * PSR bits
|
|
|
- */
|
|
|
-#define PSR_MODE_EL0t 0x00000000
|
|
|
-#define PSR_MODE_EL1t 0x00000004
|
|
|
-#define PSR_MODE_EL1h 0x00000005
|
|
|
-#define PSR_MODE_EL2t 0x00000008
|
|
|
-#define PSR_MODE_EL2h 0x00000009
|
|
|
-#define PSR_MODE_EL3t 0x0000000c
|
|
|
-#define PSR_MODE_EL3h 0x0000000d
|
|
|
-#define PSR_MODE_MASK 0x0000000f
|
|
|
-
|
|
|
-/* AArch32 CPSR bits */
|
|
|
-#define PSR_MODE32_BIT 0x00000010
|
|
|
-#ifdef __KERNEL__
|
|
|
#define COMPAT_PSR_MODE_USR 0x00000010
|
|
|
#define COMPAT_PSR_T_BIT 0x00000020
|
|
|
#define COMPAT_PSR_IT_MASK 0x0600fc00 /* If-Then execution state mask */
|
|
|
-#endif
|
|
|
-
|
|
|
-/* AArch64 SPSR bits */
|
|
|
-#define PSR_F_BIT 0x00000040
|
|
|
-#define PSR_I_BIT 0x00000080
|
|
|
-#define PSR_A_BIT 0x00000100
|
|
|
-#define PSR_D_BIT 0x00000200
|
|
|
-#define PSR_Q_BIT 0x08000000
|
|
|
-#define PSR_V_BIT 0x10000000
|
|
|
-#define PSR_C_BIT 0x20000000
|
|
|
-#define PSR_Z_BIT 0x40000000
|
|
|
-#define PSR_N_BIT 0x80000000
|
|
|
-
|
|
|
-/*
|
|
|
- * Groups of PSR bits
|
|
|
- */
|
|
|
-#define PSR_f 0xff000000 /* Flags */
|
|
|
-#define PSR_s 0x00ff0000 /* Status */
|
|
|
-#define PSR_x 0x0000ff00 /* Extension */
|
|
|
-#define PSR_c 0x000000ff /* Control */
|
|
|
-
|
|
|
-#ifdef __KERNEL__
|
|
|
/*
|
|
|
* These are 'magic' values for PTRACE_PEEKUSR that return info about where a
|
|
|
* process is located in memory.
|
|
@@ -82,36 +40,8 @@
|
|
|
#define COMPAT_PT_TEXT_ADDR 0x10000
|
|
|
#define COMPAT_PT_DATA_ADDR 0x10004
|
|
|
#define COMPAT_PT_TEXT_END_ADDR 0x10008
|
|
|
-#endif
|
|
|
-
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
|
|
-/*
|
|
|
- * User structures for general purpose, floating point and debug registers.
|
|
|
- */
|
|
|
-struct user_pt_regs {
|
|
|
- __u64 regs[31];
|
|
|
- __u64 sp;
|
|
|
- __u64 pc;
|
|
|
- __u64 pstate;
|
|
|
-};
|
|
|
-
|
|
|
-struct user_fpsimd_state {
|
|
|
- __uint128_t vregs[32];
|
|
|
- __u32 fpsr;
|
|
|
- __u32 fpcr;
|
|
|
-};
|
|
|
-
|
|
|
-struct user_hwdebug_state {
|
|
|
- __u32 dbg_info;
|
|
|
- struct {
|
|
|
- __u64 addr;
|
|
|
- __u32 ctrl;
|
|
|
- } dbg_regs[16];
|
|
|
-};
|
|
|
-
|
|
|
-#ifdef __KERNEL__
|
|
|
-
|
|
|
/* sizeof(struct user) for AArch32 */
|
|
|
#define COMPAT_USER_SZ 296
|
|
|
/* AArch32 uses x13 as the stack pointer... */
|
|
@@ -206,8 +136,5 @@ extern unsigned long profile_pc(struct pt_regs *regs);
|
|
|
|
|
|
extern int aarch32_break_trap(struct pt_regs *regs);
|
|
|
|
|
|
-#endif /* __KERNEL__ */
|
|
|
-
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
-
|
|
|
#endif
|