1 #ifndef _M68K_PTRACE_H 2 #define _M68K_PTRACE_H 3 4 #define PT_D1 0 5 #define PT_D2 1 6 #define PT_D3 2 7 #define PT_D4 3 8 #define PT_D5 4 9 #define PT_D6 5 10 #define PT_D7 6 11 #define PT_A0 7 12 #define PT_A1 8 13 #define PT_A2 9 14 #define PT_A3 10 15 #define PT_A4 11 16 #define PT_A5 12 17 #define PT_A6 13 18 #define PT_D0 14 19 #define PT_USP 15 20 #define PT_ORIG_D0 16 21 #define PT_SR 17 22 #define PT_PC 18 23 24 #ifndef __ASSEMBLY__ 25 26 /* this struct defines the way the registers are stored on the 27 stack during a system call. */ 28 29 struct pt_regs { 30 long d1; 31 long d2; 32 long d3; 33 long d4; 34 long d5; 35 long a0; 36 long a1; 37 long a2; 38 long d0; 39 long orig_d0; 40 long stkadj; 41 unsigned short sr; 42 unsigned long pc; 43 unsigned format : 4; /* frame format specifier */ 44 unsigned vector : 12; /* vector offset */ 45 }; 46 47 /* 48 * This is the extended stack used by signal handlers and the context 49 * switcher: it's pushed after the normal "struct pt_regs". 50 */ 51 struct switch_stack { 52 unsigned long d6; 53 unsigned long d7; 54 unsigned long a3; 55 unsigned long a4; 56 unsigned long a5; 57 unsigned long a6; 58 unsigned long retpc; 59 }; 60 61 /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ 62 #define PTRACE_GETREGS 12 63 #define PTRACE_SETREGS 13 64 #define PTRACE_GETFPREGS 14 65 #define PTRACE_SETFPREGS 15 66 67 #ifdef __KERNEL__ 68 69 #ifndef PS_S 70 #define PS_S (0x2000) 71 #define PS_M (0x1000) 72 #endif 73 74 #define user_mode(regs) (!((regs)->sr & PS_S)) 75 #define instruction_pointer(regs) ((regs)->pc) 76 extern void show_regs(struct pt_regs *); 77 #endif /* __KERNEL__ */ 78 #endif /* __ASSEMBLY__ */ 79 #endif /* _M68K_PTRACE_H */ 80