• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/score/include/asm/
1#ifndef _ASM_SCORE_PTRACE_H
2#define _ASM_SCORE_PTRACE_H
3
4#define PTRACE_GETREGS		12
5#define PTRACE_SETREGS		13
6
7#define PC		32
8#define CONDITION	33
9#define ECR		34
10#define EMA		35
11#define CEH		36
12#define CEL		37
13#define COUNTER		38
14#define LDCR		39
15#define STCR		40
16#define PSR		41
17
18#define SINGLESTEP16_INSN	0x7006
19#define SINGLESTEP32_INSN	0x840C8000
20#define BREAKPOINT16_INSN	0x7002		/* work on SPG300 */
21#define BREAKPOINT32_INSN	0x84048000	/* work on SPG300 */
22
23/* Define instruction mask */
24#define INSN32_MASK	0x80008000
25
26#define J32	0x88008000	/* 1_00010_0000000000_1_000000000000000 */
27#define J32M	0xFC008000	/* 1_11111_0000000000_1_000000000000000 */
28
29#define B32	0x90008000	/* 1_00100_0000000000_1_000000000000000 */
30#define B32M	0xFC008000
31#define BL32	0x90008001	/* 1_00100_0000000000_1_000000000000001 */
32#define BL32M	B32
33#define BR32	0x80008008	/* 1_00000_0000000000_1_00000000_000100_0 */
34#define BR32M	0xFFE0807E
35#define BRL32	0x80008009	/* 1_00000_0000000000_1_00000000_000100_1 */
36#define BRL32M	BR32M
37
38#define B32_SET	(J32 | B32 | BL32 | BR32 | BRL32)
39
40#define J16	0x3000		/* 0_011_....... */
41#define J16M	0xF000
42#define B16	0x4000		/* 0_100_....... */
43#define B16M	0xF000
44#define BR16	0x0004		/* 0_000.......0100 */
45#define BR16M	0xF00F
46#define B16_SET (J16 | B16 | BR16)
47
48
49/*
50 * This struct defines the way the registers are stored on the stack during a
51 * system call/exception. As usual the registers k0/k1 aren't being saved.
52 */
53struct pt_regs {
54	unsigned long pad0[6];	/* stack arguments */
55	unsigned long orig_r4;
56	unsigned long orig_r7;
57	long is_syscall;
58
59	unsigned long regs[32];
60
61	unsigned long cel;
62	unsigned long ceh;
63
64	unsigned long sr0;	/* cnt */
65	unsigned long sr1;	/* lcr */
66	unsigned long sr2;	/* scr */
67
68	unsigned long cp0_epc;
69	unsigned long cp0_ema;
70	unsigned long cp0_psr;
71	unsigned long cp0_ecr;
72	unsigned long cp0_condition;
73};
74
75#ifdef __KERNEL__
76
77struct task_struct;
78
79/*
80 * Does the process account for user or for system time?
81 */
82#define user_mode(regs) 	((regs->cp0_psr & 8) == 8)
83
84#define instruction_pointer(regs)	((unsigned long)(regs)->cp0_epc)
85#define profile_pc(regs)		instruction_pointer(regs)
86
87extern void do_syscall_trace(struct pt_regs *regs, int entryexit);
88extern int read_tsk_long(struct task_struct *, unsigned long, unsigned long *);
89extern int read_tsk_short(struct task_struct *, unsigned long,
90			 unsigned short *);
91
92#define arch_has_single_step()	(1)
93
94#endif /* __KERNEL__ */
95
96#endif /* _ASM_SCORE_PTRACE_H */
97