]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add PT_GETREGSET
authorAndrew Turner <andrew@FreeBSD.org>
Mon, 24 Jan 2022 11:24:17 +0000 (11:24 +0000)
committerAndrew Turner <andrew@FreeBSD.org>
Thu, 27 Jan 2022 11:40:34 +0000 (11:40 +0000)
commit548a2ec49bd4ebf9ab00d362257c6bb4d2d7edbc
tree095171413f5d7b081db09b8497b61d1a55d54f44
parent5d5f44623eb3d121d528060d131ee5d6bcd63489
Add PT_GETREGSET

This adds the PT_GETREGSET and PT_SETREGSET ptrace types. These can be
used to access all the registers from a specified core dump note type.
The NT_PRSTATUS and NT_FPREGSET notes are initially supported. Other
machine-dependant types are expected to be added in the future.

The ptrace addr points to a struct iovec pointing at memory to hold the
registers along with its length. On success the length in the iovec is
updated to tell userspace the actual length the kernel wrote or, if the
base address is NULL, the length the kernel would have written.

Because the data field is an int the arguments are backwards when
compared to the Linux PTRACE_GETREGSET call.

Reviewed by: kib
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D19831
18 files changed:
lib/libc/sys/ptrace.2
sys/amd64/amd64/elf_machdep.c
sys/arm/arm/elf_machdep.c
sys/arm64/arm64/elf32_machdep.c
sys/arm64/arm64/elf_machdep.c
sys/compat/freebsd32/freebsd32_misc.c
sys/compat/ia32/ia32_sysvec.c
sys/i386/i386/elf_machdep.c
sys/kern/imgact_elf.c
sys/kern/init_main.c
sys/kern/sys_process.c
sys/powerpc/powerpc/elf32_machdep.c
sys/powerpc/powerpc/elf64_machdep.c
sys/riscv/riscv/elf_machdep.c
sys/sys/ptrace.h
sys/sys/reg.h
sys/sys/sysent.h
tests/sys/kern/ptrace_test.c