78 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			78 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef _UAPI__ASM_SH_PTRACE_32_H
							 | 
						||
| 
								 | 
							
								#define _UAPI__ASM_SH_PTRACE_32_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * GCC defines register number like this:
							 | 
						||
| 
								 | 
							
								 * -----------------------------
							 | 
						||
| 
								 | 
							
								 *	 0 - 15 are integer registers
							 | 
						||
| 
								 | 
							
								 *	17 - 22 are control/special registers
							 | 
						||
| 
								 | 
							
								 *	24 - 39 fp registers
							 | 
						||
| 
								 | 
							
								 *	40 - 47 xd registers
							 | 
						||
| 
								 | 
							
								 *	48 -    fpscr register
							 | 
						||
| 
								 | 
							
								 * -----------------------------
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * We follows above, except:
							 | 
						||
| 
								 | 
							
								 *	16 --- program counter (PC)
							 | 
						||
| 
								 | 
							
								 *	22 --- syscall #
							 | 
						||
| 
								 | 
							
								 *	23 --- floating point communication register
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#define REG_REG0	 0
							 | 
						||
| 
								 | 
							
								#define REG_REG15	15
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define REG_PC		16
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define REG_PR		17
							 | 
						||
| 
								 | 
							
								#define REG_SR		18
							 | 
						||
| 
								 | 
							
								#define REG_GBR		19
							 | 
						||
| 
								 | 
							
								#define REG_MACH	20
							 | 
						||
| 
								 | 
							
								#define REG_MACL	21
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define REG_SYSCALL	22
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define REG_FPREG0	23
							 | 
						||
| 
								 | 
							
								#define REG_FPREG15	38
							 | 
						||
| 
								 | 
							
								#define REG_XFREG0	39
							 | 
						||
| 
								 | 
							
								#define REG_XFREG15	54
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define REG_FPSCR	55
							 | 
						||
| 
								 | 
							
								#define REG_FPUL	56
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * This struct defines the way the registers are stored on the
							 | 
						||
| 
								 | 
							
								 * kernel stack during a system call or other kernel entry.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								struct pt_regs {
							 | 
						||
| 
								 | 
							
									unsigned long regs[16];
							 | 
						||
| 
								 | 
							
									unsigned long pc;
							 | 
						||
| 
								 | 
							
									unsigned long pr;
							 | 
						||
| 
								 | 
							
									unsigned long sr;
							 | 
						||
| 
								 | 
							
									unsigned long gbr;
							 | 
						||
| 
								 | 
							
									unsigned long mach;
							 | 
						||
| 
								 | 
							
									unsigned long macl;
							 | 
						||
| 
								 | 
							
									long tra;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * This struct defines the way the DSP registers are stored on the
							 | 
						||
| 
								 | 
							
								 * kernel stack during a system call or other kernel entry.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								struct pt_dspregs {
							 | 
						||
| 
								 | 
							
									unsigned long	a1;
							 | 
						||
| 
								 | 
							
									unsigned long	a0g;
							 | 
						||
| 
								 | 
							
									unsigned long	a1g;
							 | 
						||
| 
								 | 
							
									unsigned long	m0;
							 | 
						||
| 
								 | 
							
									unsigned long	m1;
							 | 
						||
| 
								 | 
							
									unsigned long	a0;
							 | 
						||
| 
								 | 
							
									unsigned long	x0;
							 | 
						||
| 
								 | 
							
									unsigned long	x1;
							 | 
						||
| 
								 | 
							
									unsigned long	y0;
							 | 
						||
| 
								 | 
							
									unsigned long	y1;
							 | 
						||
| 
								 | 
							
									unsigned long	dsr;
							 | 
						||
| 
								 | 
							
									unsigned long	rs;
							 | 
						||
| 
								 | 
							
									unsigned long	re;
							 | 
						||
| 
								 | 
							
									unsigned long	mod;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* _UAPI__ASM_SH_PTRACE_32_H */
							 |