u-boot/arch/nds32/include/asm/ptrace.h
Macpaul Lin b0c4fae44a nds32: fix ptrace and interrupt register overflow
Fix ptrace and interrupt register overflow warning.
Add missing P0 and P1 (r26 and r27) into register lists.
These register are usually used in OS.

Signed-off-by: Macpaul Lin <macpaul@gmail.com>
2012-03-19 15:53:07 +08:00

90 lines
1.9 KiB
C

/*
* 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 */