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 29struct 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#ifdef CONFIG_COLDFIRE 42 unsigned format : 4; /* frame format specifier */ 43 unsigned vector : 12; /* vector offset */ 44 unsigned short sr; 45 unsigned long pc; 46#else 47 unsigned short sr; 48 unsigned long pc; 49 unsigned format : 4; /* frame format specifier */ 50 unsigned vector : 12; /* vector offset */ 51#endif 52}; 53 54/* 55 * This is the extended stack used by signal handlers and the context 56 * switcher: it's pushed after the normal "struct pt_regs". 57 */ 58struct switch_stack { 59 unsigned long d6; 60 unsigned long d7; 61 unsigned long a3; 62 unsigned long a4; 63 unsigned long a5; 64 unsigned long a6; 65 unsigned long retpc; 66}; 67 68/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ 69#define PTRACE_GETREGS 12 70#define PTRACE_SETREGS 13 71#ifdef CONFIG_FPU 72#define PTRACE_GETFPREGS 14 73#define PTRACE_SETFPREGS 15 74#endif 75 76#ifdef __KERNEL__ 77 78#ifndef PS_S 79#define PS_S (0x2000) 80#define PS_M (0x1000) 81#endif 82 83#define user_mode(regs) (!((regs)->sr & PS_S)) 84#define instruction_pointer(regs) ((regs)->pc) 85#define profile_pc(regs) instruction_pointer(regs) 86extern void show_regs(struct pt_regs *); 87#endif /* __KERNEL__ */ 88#endif /* __ASSEMBLY__ */ 89#endif /* _M68K_PTRACE_H */ 90