/* | |
* Copyright (C) 2011 Andes Technology Corporation | |
* Copyright (C) 2010 Shawn Lin (nobuhiro@andestech.com) | |
* Copyright (C) 2011 Macpaul Lin (macpaul@andestech.com) | |
* | |
* 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. | |
*/ | |
#ifndef __ASM_NDS_PTRACE_H | |
#define __ASM_NDS_PTRACE_H | |
#define USR_MODE 0x00 | |
#define SU_MODE 0x01 | |
#define HV_MODE 0x10 | |
#define MODE_MASK (0x03<<3) | |
#define GIE_BIT 0x01 | |
#ifndef __ASSEMBLY__ | |
/* this struct defines the way the registers are stored on the | |
stack during a system call. */ | |
#define NDS32_REG long | |
struct pt_regs { | |
NDS32_REG ir0; | |
NDS32_REG ipsw; | |
NDS32_REG ipc; | |
NDS32_REG sp; | |
NDS32_REG orig_r0; | |
NDS32_REG pipsw; | |
NDS32_REG pipc; | |
NDS32_REG pp0; | |
NDS32_REG pp1; | |
NDS32_REG d0hi; | |
NDS32_REG d0lo; | |
NDS32_REG d1hi; | |
NDS32_REG d1lo; | |
NDS32_REG r[26]; /* r0 - r25 */ | |
NDS32_REG p0; /* r26 - used by OS */ | |
NDS32_REG p1; /* r27 - used by OS */ | |
NDS32_REG fp; /* r28 */ | |
NDS32_REG gp; /* r29 */ | |
NDS32_REG lp; /* r30 */ | |
NDS32_REG fucop_ctl; | |
NDS32_REG osp; | |
}; | |
#define processor_mode(regs) \ | |
(((regs)->ipsw & MODE_MASK) >> 3) | |
#define interrupts_enabled(regs) \ | |
((regs)->ipsw & GIE_BIT) | |
/* | |
* Offsets used by 'ptrace' system call interface. | |
* These can't be changed without breaking binary compatibility | |
* with MkLinux, etc. | |
*/ | |
#define PT_R0 0 | |
#define PT_R1 1 | |
#define PT_R2 2 | |
#define PT_R3 3 | |
#define PT_R4 4 | |
#define PT_R5 5 | |
#define PT_R6 6 | |
#define PT_R7 7 | |
#define PT_R8 8 | |
#define PT_R9 9 | |
#define PT_R10 10 | |
#define PT_R11 11 | |
#define PT_R12 12 | |
#define PT_R13 13 | |
#define PT_R14 14 | |
#define PT_R15 15 | |
#define PT_R16 16 | |
#define PT_R17 17 | |
#define PT_R18 18 | |
#define PT_R19 19 | |
#define PT_R20 20 | |
#define PT_R21 21 | |
#define PT_R22 22 | |
#define PT_R23 23 | |
#define PT_R24 24 | |
#define PT_R25 25 | |
#endif /* __ASSEMBLY__ */ | |
#endif /* __ASM_NDS_PTRACE_H */ |