116559ae86908b88ba7644fac078f9168cbbcae10Ying Wang/****************************************************************************
216559ae86908b88ba7644fac078f9168cbbcae10Ying Wang ****************************************************************************
316559ae86908b88ba7644fac078f9168cbbcae10Ying Wang ***
416559ae86908b88ba7644fac078f9168cbbcae10Ying Wang ***   This header was automatically generated from a Linux kernel header
516559ae86908b88ba7644fac078f9168cbbcae10Ying Wang ***   of the same name, to make information necessary for userspace to
616559ae86908b88ba7644fac078f9168cbbcae10Ying Wang ***   call into the kernel available to libc.  It contains only constants,
716559ae86908b88ba7644fac078f9168cbbcae10Ying Wang ***   structures, and macros generated from the original header, and thus,
816559ae86908b88ba7644fac078f9168cbbcae10Ying Wang ***   contains no copyrightable information.
916559ae86908b88ba7644fac078f9168cbbcae10Ying Wang ***
1016559ae86908b88ba7644fac078f9168cbbcae10Ying Wang ****************************************************************************
1116559ae86908b88ba7644fac078f9168cbbcae10Ying Wang ****************************************************************************/
1216559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#ifndef __ASM_ARM_PTRACE_H
1316559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define __ASM_ARM_PTRACE_H
1416559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
1516559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_GETREGS 12
1616559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_SETREGS 13
1716559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_GETFPREGS 14
1816559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_SETFPREGS 15
1916559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
2016559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_GETWMMXREGS 18
2116559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_SETWMMXREGS 19
2216559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
2316559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_OLDSETOPTIONS 21
2416559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
2516559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_GET_THREAD_AREA 22
2616559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
2716559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_SET_SYSCALL 23
2816559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
2916559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_GETCRUNCHREGS 25
3016559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PTRACE_SETCRUNCHREGS 26
3116559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
325b02cc4c4e80fd6a9ee30e0ad4642122e08a007bYing Wang#define PTRACE_GETVFPREGS 27
335b02cc4c4e80fd6a9ee30e0ad4642122e08a007bYing Wang#define PTRACE_SETVFPREGS 28
345b02cc4c4e80fd6a9ee30e0ad4642122e08a007bYing Wang
3516559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define USR26_MODE 0x00000000
3616559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define FIQ26_MODE 0x00000001
3716559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define IRQ26_MODE 0x00000002
3816559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define SVC26_MODE 0x00000003
3916559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define USR_MODE 0x00000010
4016559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define FIQ_MODE 0x00000011
4116559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define IRQ_MODE 0x00000012
4216559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define SVC_MODE 0x00000013
4316559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ABT_MODE 0x00000017
4416559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define UND_MODE 0x0000001b
4516559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define SYSTEM_MODE 0x0000001f
4616559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define MODE32_BIT 0x00000010
4716559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define MODE_MASK 0x0000001f
4816559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_T_BIT 0x00000020
4916559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_F_BIT 0x00000040
5016559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_I_BIT 0x00000080
5116559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_J_BIT 0x01000000
5216559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_Q_BIT 0x08000000
5316559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_V_BIT 0x10000000
5416559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_C_BIT 0x20000000
5516559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_Z_BIT 0x40000000
5616559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_N_BIT 0x80000000
5716559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PCMASK 0
5816559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
5916559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_f 0xff000000
6016559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_s 0x00ff0000
6116559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_x 0x0000ff00
6216559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define PSR_c 0x000000ff
6316559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
6416559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#ifndef __ASSEMBLY__
6516559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
6616559ae86908b88ba7644fac078f9168cbbcae10Ying Wangstruct pt_regs {
6716559ae86908b88ba7644fac078f9168cbbcae10Ying Wang long uregs[18];
6816559ae86908b88ba7644fac078f9168cbbcae10Ying Wang};
6916559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
7016559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_cpsr uregs[16]
7116559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_pc uregs[15]
7216559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_lr uregs[14]
7316559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_sp uregs[13]
7416559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_ip uregs[12]
7516559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_fp uregs[11]
7616559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r10 uregs[10]
7716559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r9 uregs[9]
7816559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r8 uregs[8]
7916559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r7 uregs[7]
8016559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r6 uregs[6]
8116559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r5 uregs[5]
8216559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r4 uregs[4]
8316559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r3 uregs[3]
8416559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r2 uregs[2]
8516559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r1 uregs[1]
8616559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_r0 uregs[0]
8716559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define ARM_ORIG_r0 uregs[17]
8816559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
8916559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define pc_pointer(v)   ((v) & ~PCMASK)
9016559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
9116559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define instruction_pointer(regs)   (pc_pointer((regs)->ARM_pc))
9216559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
9316559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#define profile_pc(regs) instruction_pointer(regs)
9416559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
9516559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#endif
9616559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
9716559ae86908b88ba7644fac078f9168cbbcae10Ying Wang#endif
9816559ae86908b88ba7644fac078f9168cbbcae10Ying Wang
99