Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / u-boot / arch / nds32 / include / asm / ptrace.h
diff --git a/qemu/roms/u-boot/arch/nds32/include/asm/ptrace.h b/qemu/roms/u-boot/arch/nds32/include/asm/ptrace.h
new file mode 100644 (file)
index 0000000..ee181b2
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * 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 */