ptrace.h

来自「最新版的u-boot,2008-10-18发布」· C头文件 代码 · 共 113 行

H
113
字号
#ifndef __ASM_SH_PTRACE_H#define __ASM_SH_PTRACE_H/* * Copyright (C) 1999, 2000  Niibe Yutaka * from linux kernel code. *//* * 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/* options set using PTRACE_SETOPTIONS */#define PTRACE_O_TRACESYSGOOD     0x00000001/* * 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;};#define	PTRACE_GETDSPREGS	55#define	PTRACE_SETDSPREGS	56#ifdef __KERNEL__#define user_mode(regs) (((regs)->sr & 0x40000000)==0)#define instruction_pointer(regs) ((regs)->pc)extern void show_regs(struct pt_regs *);#ifdef CONFIG_SH_DSP#define task_pt_regs(task) \	((struct pt_regs *) (task_stack_page(task) + THREAD_SIZE \		 - sizeof(struct pt_dspregs) - sizeof(unsigned long)) - 1)#else#define task_pt_regs(task) \	((struct pt_regs *) (task_stack_page(task) + THREAD_SIZE \		 - sizeof(unsigned long)) - 1)#endifstatic inline unsigned long profile_pc(struct pt_regs *regs){	unsigned long pc = instruction_pointer(regs);	if (pc >= 0xa0000000UL && pc < 0xc0000000UL)		pc -= 0x20000000;	return pc;}#endif#endif /* __ASM_SH_PTRACE_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?