2012-10-11 11:05:13 +01:00
/*
* Based on arch / arm / include / asm / ptrace . h
*
* Copyright ( C ) 1996 - 2003 Russell King
* Copyright ( C ) 2012 ARM Ltd .
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef _UAPI__ASM_PTRACE_H
# define _UAPI__ASM_PTRACE_H
# include <linux/types.h>
# include <asm/hwcap.h>
/*
* 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
/* AArch64 SPSR bits */
# define PSR_F_BIT 0x00000040
# define PSR_I_BIT 0x00000080
# define PSR_A_BIT 0x00000100
# define PSR_D_BIT 0x00000200
2015-07-22 19:05:54 +01:00
# define PSR_PAN_BIT 0x00400000
2016-02-05 14:58:48 +00:00
# define PSR_UAO_BIT 0x00800000
2012-10-11 11:05:13 +01:00
# 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 */
# 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 ;
2017-01-18 16:25:23 +00:00
__u32 __reserved [ 2 ] ;
2012-10-11 11:05:13 +01:00
} ;
struct user_hwdebug_state {
__u32 dbg_info ;
2012-10-11 12:10:57 +01:00
__u32 pad ;
2012-10-11 11:05:13 +01:00
struct {
__u64 addr ;
__u32 ctrl ;
2012-10-11 12:10:57 +01:00
__u32 pad ;
2012-10-11 11:05:13 +01:00
} dbg_regs [ 16 ] ;
} ;
# endif /* __ASSEMBLY__ */
# endif /* _UAPI__ASM_PTRACE_H */