Module Name: src Committed By: christos Date: Tue Sep 15 15:49:03 UTC 2015
Modified Files: src/sys/arch/aarch64/include: ptrace.h src/sys/arch/alpha/include: ptrace.h src/sys/arch/amd64/include: ptrace.h src/sys/arch/arm/include: ptrace.h src/sys/arch/hppa/include: ptrace.h src/sys/arch/i386/include: ptrace.h src/sys/arch/ia64/include: ptrace.h src/sys/arch/m68k/include: ptrace.h src/sys/arch/mips/include: ptrace.h src/sys/arch/or1k/include: ptrace.h src/sys/arch/powerpc/include: ptrace.h src/sys/arch/riscv/include: ptrace.h src/sys/arch/sh3/include: ptrace.h src/sys/arch/sparc/include: ptrace.h src/sys/arch/vax/include: ptrace.h Log Message: Provide access to pc/sp/syscall-return registers like we have for mcontext To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/aarch64/include/ptrace.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/alpha/include/ptrace.h cvs rdiff -u -r1.3 -r1.4 src/sys/arch/amd64/include/ptrace.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/include/ptrace.h cvs rdiff -u -r1.3 -r1.4 src/sys/arch/hppa/include/ptrace.h cvs rdiff -u -r1.13 -r1.14 src/sys/arch/i386/include/ptrace.h cvs rdiff -u -r1.2 -r1.3 src/sys/arch/ia64/include/ptrace.h cvs rdiff -u -r1.8 -r1.9 src/sys/arch/m68k/include/ptrace.h cvs rdiff -u -r1.12 -r1.13 src/sys/arch/mips/include/ptrace.h cvs rdiff -u -r1.1 -r1.2 src/sys/arch/or1k/include/ptrace.h cvs rdiff -u -r1.11 -r1.12 src/sys/arch/powerpc/include/ptrace.h cvs rdiff -u -r1.1 -r1.2 src/sys/arch/riscv/include/ptrace.h cvs rdiff -u -r1.10 -r1.11 src/sys/arch/sh3/include/ptrace.h cvs rdiff -u -r1.7 -r1.8 src/sys/arch/sparc/include/ptrace.h cvs rdiff -u -r1.4 -r1.5 src/sys/arch/vax/include/ptrace.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/aarch64/include/ptrace.h diff -u src/sys/arch/aarch64/include/ptrace.h:1.2 src/sys/arch/aarch64/include/ptrace.h:1.3 --- src/sys/arch/aarch64/include/ptrace.h:1.2 Mon Aug 11 18:09:08 2014 +++ src/sys/arch/aarch64/include/ptrace.h Tue Sep 15 11:49:02 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.2 2014/08/11 22:09:08 matt Exp $ */ +/* $NetBSD: ptrace.h,v 1.3 2015/09/15 15:49:02 christos Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -49,6 +49,13 @@ "PT_GETFPREGS", \ "PT_SETFPREGS", + +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_pc +#define PTRACE_REG_SET_PC(r, v) (r)->r_pc = (v) +#define PTRACE_REG_SP(r) (r)->r_sp +#define PTRACE_REG_INTRV(r) (r)->r_reg[0] + #elif defined(__arm__) #include <arm/ptrace.h> Index: src/sys/arch/alpha/include/ptrace.h diff -u src/sys/arch/alpha/include/ptrace.h:1.6 src/sys/arch/alpha/include/ptrace.h:1.7 --- src/sys/arch/alpha/include/ptrace.h:1.6 Fri Jan 25 07:03:36 2008 +++ src/sys/arch/alpha/include/ptrace.h Tue Sep 15 11:49:02 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.6 2008/01/25 12:03:36 skrll Exp $ */ +/* $NetBSD: ptrace.h,v 1.7 2015/09/15 15:49:02 christos Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -44,3 +44,9 @@ "PT_SETREGS", \ "PT_GETFPREGS", \ "PT_SETFPREGS", + +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_regs[R_ZERO] +#define PTRACE_REG_SET_PC(r, v) (r)->r_regs[R_ZERO] = (v) +#define PTRACE_REG_SP(r) (r)->r_regs[R_SP] +#define PTRACE_REG_INTRV(r) (r)->r_regs[R_V0] Index: src/sys/arch/amd64/include/ptrace.h diff -u src/sys/arch/amd64/include/ptrace.h:1.3 src/sys/arch/amd64/include/ptrace.h:1.4 --- src/sys/arch/amd64/include/ptrace.h:1.3 Mon Apr 16 08:22:26 2007 +++ src/sys/arch/amd64/include/ptrace.h Tue Sep 15 11:49:02 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.3 2007/04/16 12:22:26 njoly Exp $ */ +/* $NetBSD: ptrace.h,v 1.4 2015/09/15 15:49:02 christos Exp $ */ /* * Copyright (c) 1993 Christopher G. Demetriou @@ -46,6 +46,12 @@ "PT_GETFPREGS", \ "PT_SETFPREGS", +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->regs[_REG_RIP] +#define PTRACE_REG_SET_PC(r, v) (r)->regs[_REG_RIP] = (v) +#define PTRACE_REG_SP(r) (r)->regs[_REG_RSP] +#define PTRACE_REG_INTRV(r) (r)->regs[_REG_RAX] + #ifdef _KERNEL_OPT #include "opt_compat_netbsd32.h" Index: src/sys/arch/arm/include/ptrace.h diff -u src/sys/arch/arm/include/ptrace.h:1.6 src/sys/arch/arm/include/ptrace.h:1.7 --- src/sys/arch/arm/include/ptrace.h:1.6 Wed Dec 5 14:05:46 2012 +++ src/sys/arch/arm/include/ptrace.h Tue Sep 15 11:49:02 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.6 2012/12/05 19:05:46 matt Exp $ */ +/* $NetBSD: ptrace.h,v 1.7 2015/09/15 15:49:02 christos Exp $ */ /* * Copyright (c) 1995 Frank Lancaster @@ -51,3 +51,9 @@ "old PT_SETFPREGS", \ "PT_GETFPREGS", \ "PT_SETFPREGS", + +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_pc +#define PTRACE_REG_SET_PC(r, v) (r)->r_pc = (v) +#define PTRACE_REG_SP(r) (r)->r_sp +#define PTRACE_REG_INTRV(r) (r)->r[0] Index: src/sys/arch/hppa/include/ptrace.h diff -u src/sys/arch/hppa/include/ptrace.h:1.3 src/sys/arch/hppa/include/ptrace.h:1.4 --- src/sys/arch/hppa/include/ptrace.h:1.3 Tue Nov 3 00:07:26 2009 +++ src/sys/arch/hppa/include/ptrace.h Tue Sep 15 11:49:02 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.3 2009/11/03 05:07:26 snj Exp $ */ +/* $NetBSD: ptrace.h,v 1.4 2015/09/15 15:49:02 christos Exp $ */ /* $OpenBSD: ptrace.h,v 1.2 1998/12/01 03:05:44 mickey Exp $ */ @@ -43,3 +43,12 @@ "PT_SETREGS", \ "PT_GETFPREGS", \ "PT_SETFPREGS", + +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_pcoqh +#define PTRACE_REG_SET_PC(r, v) do { \ + (r)->r_pcoqh = (v); \ + (r)->r_pcoqt = (v) + 4; \ + } while (/*CONSTCOND*/0) +#define PTRACE_REG_SP(r) (r)->r_out[30] +#define PTRACE_REG_INTRV(r) (r)->r_out[28] Index: src/sys/arch/i386/include/ptrace.h diff -u src/sys/arch/i386/include/ptrace.h:1.13 src/sys/arch/i386/include/ptrace.h:1.14 --- src/sys/arch/i386/include/ptrace.h:1.13 Sun Mar 5 02:17:21 2006 +++ src/sys/arch/i386/include/ptrace.h Tue Sep 15 11:49:02 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.13 2006/03/05 07:17:21 christos Exp $ */ +/* $NetBSD: ptrace.h,v 1.14 2015/09/15 15:49:02 christos Exp $ */ /* * Copyright (c) 2001 Wasabi Systems, Inc. @@ -96,6 +96,12 @@ "PT_GETXMMREGS", \ "PT_SETXMMREGS", +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_eip +#define PTRACE_REG_SET_PC(r, v) (r)->r_eip = (v) +#define PTRACE_REG_SP(r) (r)->r_esp +#define PTRACE_REG_INTRV(r) (r)->r_eax + #ifdef _KERNEL /* Index: src/sys/arch/ia64/include/ptrace.h diff -u src/sys/arch/ia64/include/ptrace.h:1.2 src/sys/arch/ia64/include/ptrace.h:1.3 --- src/sys/arch/ia64/include/ptrace.h:1.2 Fri Jan 25 07:03:36 2008 +++ src/sys/arch/ia64/include/ptrace.h Tue Sep 15 11:49:02 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.2 2008/01/25 12:03:36 skrll Exp $ */ +/* $NetBSD: ptrace.h,v 1.3 2015/09/15 15:49:02 christos Exp $ */ /* * Copyright (c) 1994 Christopher G. Demetriou @@ -45,3 +45,11 @@ "PT_SETREGS", \ "PT_GETFPREGS", \ "PT_SETFPREGS", + +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_special.iip +#define PTRACE_REG_SET_PC(r, v) (r)->r_special.iip = (v) +#define PTRACE_REG_SP(r) (r)->r_special.sp +#ifdef notyet +#define PTRACE_REG_INTRV(r) (r)->r_special.!!! +#endif Index: src/sys/arch/m68k/include/ptrace.h diff -u src/sys/arch/m68k/include/ptrace.h:1.8 src/sys/arch/m68k/include/ptrace.h:1.9 --- src/sys/arch/m68k/include/ptrace.h:1.8 Fri Jan 25 07:03:36 2008 +++ src/sys/arch/m68k/include/ptrace.h Tue Sep 15 11:49:02 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.8 2008/01/25 12:03:36 skrll Exp $ */ +/* $NetBSD: ptrace.h,v 1.9 2015/09/15 15:49:02 christos Exp $ */ /* * Copyright (c) 1993 Christopher G. Demetriou @@ -48,4 +48,10 @@ "PT_GETFPREGS", \ "PT_SETFPREGS", +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_pc +#define PTRACE_REG_SET_PC(r, v) (r)->r_pc = (v) +#define PTRACE_REG_SP(r) (r)->r_regs[15] +#define PTRACE_REG_INTRV(r) (r)->r_regs[0] + #endif /* !_M68K_PTRACE_H_ */ Index: src/sys/arch/mips/include/ptrace.h diff -u src/sys/arch/mips/include/ptrace.h:1.12 src/sys/arch/mips/include/ptrace.h:1.13 --- src/sys/arch/mips/include/ptrace.h:1.12 Fri Jan 25 07:03:36 2008 +++ src/sys/arch/mips/include/ptrace.h Tue Sep 15 11:49:02 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.12 2008/01/25 12:03:36 skrll Exp $ */ +/* $NetBSD: ptrace.h,v 1.13 2015/09/15 15:49:02 christos Exp $ */ /* * Copyright (c) 1992, 1993 @@ -53,6 +53,11 @@ "PT_GETFPREGS", \ "PT_SETFPREGS", +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_regs[35] +#define PTRACE_REG_SET_PC(r, v) (r)->r_regs[35] = (v) +#define PTRACE_REG_SP(r) (r)->r_regs[29] +#define PTRACE_REG_INTRV(r) (r)->r_regs[2] /* * Glue for gdb: map NetBSD register names to legacy ptrace register names */ Index: src/sys/arch/or1k/include/ptrace.h diff -u src/sys/arch/or1k/include/ptrace.h:1.1 src/sys/arch/or1k/include/ptrace.h:1.2 --- src/sys/arch/or1k/include/ptrace.h:1.1 Wed Sep 3 15:34:26 2014 +++ src/sys/arch/or1k/include/ptrace.h Tue Sep 15 11:49:03 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.1 2014/09/03 19:34:26 matt Exp $ */ +/* $NetBSD: ptrace.h,v 1.2 2015/09/15 15:49:03 christos Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -43,4 +43,10 @@ "PT_GETREGS", \ "PT_SETREGS" +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_reg[31] // XXX:!?! +#define PTRACE_REG_SET_PC(r, v) (r)->r_reg[31] = (v) +#define PTRACE_REG_SP(r) (r)->r_reg[11] +#define PTRACE_REG_INTRV(r) (r)->r_reg[0] + #endif /* _OR1K_PTRACE_H_ */ Index: src/sys/arch/powerpc/include/ptrace.h diff -u src/sys/arch/powerpc/include/ptrace.h:1.11 src/sys/arch/powerpc/include/ptrace.h:1.12 --- src/sys/arch/powerpc/include/ptrace.h:1.11 Mon Jan 17 20:02:54 2011 +++ src/sys/arch/powerpc/include/ptrace.h Tue Sep 15 11:49:03 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.11 2011/01/18 01:02:54 matt Exp $ */ +/* $NetBSD: ptrace.h,v 1.12 2015/09/15 15:49:03 christos Exp $ */ #ifndef _POWERPC_PTRACE_H #define _POWERPC_PTRACE_H @@ -17,6 +17,12 @@ "PT_GETFPREGS", "PT_SETFPREGS", \ "PT_GETVECREGS", "PT_SETVECREGS", +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->pc +#define PTRACE_REG_SET_PC(r, v) (r)->pc = (v) +#define PTRACE_REG_SP(r) (r)->fixreg[1] +#define PTRACE_REG_INTRV(r) (r)->fixreg[3] + #ifdef _KERNEL #ifdef _KERNEL_OPT #include "opt_altivec.h" Index: src/sys/arch/riscv/include/ptrace.h diff -u src/sys/arch/riscv/include/ptrace.h:1.1 src/sys/arch/riscv/include/ptrace.h:1.2 --- src/sys/arch/riscv/include/ptrace.h:1.1 Fri Sep 19 13:36:26 2014 +++ src/sys/arch/riscv/include/ptrace.h Tue Sep 15 11:49:03 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.1 2014/09/19 17:36:26 matt Exp $ */ +/* $NetBSD: ptrace.h,v 1.2 2015/09/15 15:49:03 christos Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -47,4 +47,10 @@ "PT_GETFPREGS", \ "PT_SETFPREGS" +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_pc +#define PTRACE_REG_SET_PC(r, v) (r)->r_pc = (v) +#define PTRACE_REG_SP(r) (r)->r_reg[1] +#define PTRACE_REG_INTRV(r) (r)->r_reg[9] + #endif /* _RISCV_PTRACE_H_ */ Index: src/sys/arch/sh3/include/ptrace.h diff -u src/sys/arch/sh3/include/ptrace.h:1.10 src/sys/arch/sh3/include/ptrace.h:1.11 --- src/sys/arch/sh3/include/ptrace.h:1.10 Mon Oct 31 15:08:45 2011 +++ src/sys/arch/sh3/include/ptrace.h Tue Sep 15 11:49:03 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.10 2011/10/31 19:08:45 uwe Exp $ */ +/* $NetBSD: ptrace.h,v 1.11 2015/09/15 15:49:03 christos Exp $ */ /* * Copyright (c) 1993 Christopher G. Demetriou @@ -58,6 +58,11 @@ "PT_GETREGS", \ "PT_SETREGS", +#include <machine/reg.h> +#define PTRACE_REG_PC(r) r->r_spc +#define PTRACE_REG_SET_PC(r, v) r->r_spc = (v) +#define PTRACE_REG_SP(r) r->r_r15 +#define PTRACE_REG_INTV(r) r->r_r0 #ifdef _KERNEL #ifdef _KERNEL_OPT Index: src/sys/arch/sparc/include/ptrace.h diff -u src/sys/arch/sparc/include/ptrace.h:1.7 src/sys/arch/sparc/include/ptrace.h:1.8 --- src/sys/arch/sparc/include/ptrace.h:1.7 Fri Jan 25 07:03:37 2008 +++ src/sys/arch/sparc/include/ptrace.h Tue Sep 15 11:49:03 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.7 2008/01/25 12:03:37 skrll Exp $ */ +/* $NetBSD: ptrace.h,v 1.8 2015/09/15 15:49:03 christos Exp $ */ /* * Copyright (c) 1992, 1993 @@ -53,3 +53,12 @@ "PT_SETREGS", \ "PT_GETFPREGS", \ "PT_SETFPREGS", + +#include <machine/reg.h> +#define PTRACE_REG_PC(r) (r)->r_pc +#define PTRACE_REG_SET_PC(r, v) do { \ + (r)->r_pc = (v); \ + (r)->r_npc = (v) + 4; \ + } while (/*CONSTCOND*/0) +#define PTRACE_REG_SP(r) (r)->r_out[6] +#define PTRACE_REG_INTRV(r) (r)->r_out[0] Index: src/sys/arch/vax/include/ptrace.h diff -u src/sys/arch/vax/include/ptrace.h:1.4 src/sys/arch/vax/include/ptrace.h:1.5 --- src/sys/arch/vax/include/ptrace.h:1.4 Fri Jan 25 07:03:37 2008 +++ src/sys/arch/vax/include/ptrace.h Tue Sep 15 11:49:03 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.4 2008/01/25 12:03:37 skrll Exp $ */ +/* $NetBSD: ptrace.h,v 1.5 2015/09/15 15:49:03 christos Exp $ */ /* * Copyright (c) 1994 Ludd, University of Lule}, Sweden. @@ -41,3 +41,10 @@ "PT_STEP", \ "PT_GETREGS", \ "PT_SETREGS", + +#include <machine/reg.h> + +#define PTRACE_REG_PC(r) (r)->pc +#define PTRACE_REG_SET_PC(r, v) (r)->pc = (v) +#define PTRACE_REG_SP(r) (r)->sp +#define PTRACE_REG_INTRV(r) (r)->r0