Module Name: src Committed By: christos Date: Sat Jan 11 19:42:04 UTC 2025
Modified Files: src/sys/kern: sys_process_lwpstatus.c sys_ptrace_common.c src/sys/sys: ptrace.h Log Message: PR/58983: Harold Gutch: Fix INSTALL_FLOPPY on i386. Make the register handling code conditional on if PTRACE is enabled in the kernel. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/kern/sys_process_lwpstatus.c cvs rdiff -u -r1.95 -r1.96 src/sys/kern/sys_ptrace_common.c cvs rdiff -u -r1.76 -r1.77 src/sys/sys/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/kern/sys_process_lwpstatus.c diff -u src/sys/kern/sys_process_lwpstatus.c:1.4 src/sys/kern/sys_process_lwpstatus.c:1.5 --- src/sys/kern/sys_process_lwpstatus.c:1.4 Sun Jul 10 13:47:58 2022 +++ src/sys/kern/sys_process_lwpstatus.c Sat Jan 11 14:42:04 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_process_lwpstatus.c,v 1.4 2022/07/10 17:47:58 riastradh Exp $ */ +/* $NetBSD: sys_process_lwpstatus.c,v 1.5 2025/01/11 19:42:04 christos Exp $ */ /*- * Copyright (c) 2019 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sys_process_lwpstatus.c,v 1.4 2022/07/10 17:47:58 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sys_process_lwpstatus.c,v 1.5 2025/01/11 19:42:04 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_ptrace.h" @@ -112,7 +112,7 @@ int process_validfpregs(struct lwp *l) { -#if defined(PT_SETFPREGS) || defined(PT_GETFPREGS) +#if defined(PT_FPREGS) return (l->l_flag & LW_SYSTEM) == 0; #else return 0; @@ -123,7 +123,7 @@ int process_validregs(struct lwp *l) { -#if defined(PT_SETREGS) || defined(PT_GETREGS) +#if defined(PT_REGS) return (l->l_flag & LW_SYSTEM) == 0; #else return 0; @@ -134,7 +134,7 @@ int process_validdbregs(struct lwp *l) { -#if defined(PT_SETDBREGS) || defined(PT_GETDBREGS) +#if defined(PT_DBREGS) return (l->l_flag & LW_SYSTEM) == 0; #else return 0; @@ -183,7 +183,7 @@ process_doregs(struct lwp *curl /*tracer struct lwp *l /*traced*/, struct uio *uio) { -#if defined(PT_GETREGS) || defined(PT_SETREGS) +#if defined(PT_REGS) size_t s; ptrace_regrfunc_t r; ptrace_regwfunc_t w; @@ -217,7 +217,7 @@ process_dofpregs(struct lwp *curl /*trac struct lwp *l /*traced*/, struct uio *uio) { -#if defined(PT_GETFPREGS) || defined(PT_SETFPREGS) +#if defined(PT_FPREGS) size_t s; ptrace_regrfunc_t r; ptrace_regwfunc_t w; @@ -252,7 +252,7 @@ process_dodbregs(struct lwp *curl /*trac struct lwp *l /*traced*/, struct uio *uio) { -#if defined(PT_GETDBREGS) || defined(PT_SETDBREGS) +#if defined(PT_DBREGS) size_t s; ptrace_regrfunc_t r; ptrace_regwfunc_t w; Index: src/sys/kern/sys_ptrace_common.c diff -u src/sys/kern/sys_ptrace_common.c:1.95 src/sys/kern/sys_ptrace_common.c:1.96 --- src/sys/kern/sys_ptrace_common.c:1.95 Mon Dec 16 07:56:12 2024 +++ src/sys/kern/sys_ptrace_common.c Sat Jan 11 14:42:04 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_ptrace_common.c,v 1.95 2024/12/16 12:56:12 christos Exp $ */ +/* $NetBSD: sys_ptrace_common.c,v 1.96 2025/01/11 19:42:04 christos Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -107,7 +107,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sys_ptrace_common.c,v 1.95 2024/12/16 12:56:12 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sys_ptrace_common.c,v 1.96 2025/01/11 19:42:04 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_ptrace.h" @@ -886,7 +886,7 @@ ptrace_regs(struct lwp *l, struct lwp ** DPRINTF(("%s: lwp=%d request=%d\n", __func__, l->l_lid, rq)); switch (rq) { -#if defined(PT_SETREGS) || defined(PT_GETREGS) +#if defined(PT_REGS) case_PT_GETREGS case_PT_SETREGS if (!process_validregs(*lt)) @@ -895,7 +895,7 @@ ptrace_regs(struct lwp *l, struct lwp ** func = ptm->ptm_doregs; break; #endif -#if defined(PT_SETFPREGS) || defined(PT_GETFPREGS) +#if defined(PT_FPREGS) case_PT_GETFPREGS case_PT_SETFPREGS if (!process_validfpregs(*lt)) @@ -904,7 +904,7 @@ ptrace_regs(struct lwp *l, struct lwp ** func = ptm->ptm_dofpregs; break; #endif -#if defined(PT_SETDBREGS) || defined(PT_GETDBREGS) +#if defined(PT_DBREGS) case_PT_GETDBREGS case_PT_SETDBREGS if (!process_validdbregs(*lt)) Index: src/sys/sys/ptrace.h diff -u src/sys/sys/ptrace.h:1.76 src/sys/sys/ptrace.h:1.77 --- src/sys/sys/ptrace.h:1.76 Sun Dec 15 11:26:56 2024 +++ src/sys/sys/ptrace.h Sat Jan 11 14:42:04 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.h,v 1.76 2024/12/15 16:26:56 christos Exp $ */ +/* $NetBSD: ptrace.h,v 1.77 2025/01/11 19:42:04 christos Exp $ */ /*- * Copyright (c) 1984, 1993 @@ -354,11 +354,20 @@ int ptrace_machdep_dorequest(struct lwp typedef int (*ptrace_regrfunc_t)(struct lwp *, void *, size_t *); typedef int (*ptrace_regwfunc_t)(struct lwp *, void *, size_t); -#if defined(PT_SETREGS) || defined(PT_GETREGS) || \ - defined(PT_SETFPREGS) || defined(PT_GETFPREGS) || \ - defined(PT_SETDBREGS) || defined(PT_GETDBREGS) -# define PT_REGISTERS -#endif +#if defined(PTRACE) +# if defined(PT_SETREGS) || defined(PT_GETREGS) +# define PT_REGS +# endif +# if defined(PT_SETFPREGS) || defined(PT_GETFPREGS) +# define PT_FPREGS +# endif +# if defined(PT_SETDBREGS) || defined(PT_GETDBREGS) +# define PT_DBREGS +# endif +# if defined(PT_REGS) || defined(PT_FPREGS) || defined(PT_DBREGS) +# define PT_REGISTERS +# endif +#endif /* PTRACE */ #else /* !_KERNEL */