12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #ifndef _ASM_SCORE_PTRACE_H
- #define _ASM_SCORE_PTRACE_H
- #define PTRACE_GETREGS 12
- #define PTRACE_SETREGS 13
- #define PC 32
- #define CONDITION 33
- #define ECR 34
- #define EMA 35
- #define CEH 36
- #define CEL 37
- #define COUNTER 38
- #define LDCR 39
- #define STCR 40
- #define PSR 41
- #define SINGLESTEP16_INSN 0x7006
- #define SINGLESTEP32_INSN 0x840C8000
- #define BREAKPOINT16_INSN 0x7002 /* work on SPG300 */
- #define BREAKPOINT32_INSN 0x84048000 /* work on SPG300 */
- /* Define instruction mask */
- #define INSN32_MASK 0x80008000
- #define J32 0x88008000 /* 1_00010_0000000000_1_000000000000000 */
- #define J32M 0xFC008000 /* 1_11111_0000000000_1_000000000000000 */
- #define B32 0x90008000 /* 1_00100_0000000000_1_000000000000000 */
- #define B32M 0xFC008000
- #define BL32 0x90008001 /* 1_00100_0000000000_1_000000000000001 */
- #define BL32M B32
- #define BR32 0x80008008 /* 1_00000_0000000000_1_00000000_000100_0 */
- #define BR32M 0xFFE0807E
- #define BRL32 0x80008009 /* 1_00000_0000000000_1_00000000_000100_1 */
- #define BRL32M BR32M
- #define B32_SET (J32 | B32 | BL32 | BR32 | BRL32)
- #define J16 0x3000 /* 0_011_....... */
- #define J16M 0xF000
- #define B16 0x4000 /* 0_100_....... */
- #define B16M 0xF000
- #define BR16 0x0004 /* 0_000.......0100 */
- #define BR16M 0xF00F
- #define B16_SET (J16 | B16 | BR16)
- /*
- * This struct defines the way the registers are stored on the stack during a
- * system call/exception. As usual the registers k0/k1 aren't being saved.
- */
- struct pt_regs {
- unsigned long pad0[6]; /* stack arguments */
- unsigned long orig_r4;
- unsigned long orig_r7;
- long is_syscall;
- unsigned long regs[32];
- unsigned long cel;
- unsigned long ceh;
- unsigned long sr0; /* cnt */
- unsigned long sr1; /* lcr */
- unsigned long sr2; /* scr */
- unsigned long cp0_epc;
- unsigned long cp0_ema;
- unsigned long cp0_psr;
- unsigned long cp0_ecr;
- unsigned long cp0_condition;
- };
- #ifdef __KERNEL__
- struct task_struct;
- /*
- * Does the process account for user or for system time?
- */
- #define user_mode(regs) ((regs->cp0_psr & 8) == 8)
- #define instruction_pointer(regs) ((unsigned long)(regs)->cp0_epc)
- #define profile_pc(regs) instruction_pointer(regs)
- extern void do_syscall_trace(struct pt_regs *regs, int entryexit);
- extern int read_tsk_long(struct task_struct *, unsigned long, unsigned long *);
- extern int read_tsk_short(struct task_struct *, unsigned long,
- unsigned short *);
- #define arch_has_single_step() (1)
- #endif /* __KERNEL__ */
- #endif /* _ASM_SCORE_PTRACE_H */
|