mirror of
https://github.com/golang/sys.git
synced 2026-02-09 04:06:04 +03:00
The existing ptrace wrapper accepts pointer argument as an uintptr which often points to the memory allocated in Go. This violates unsafe.Pointer safety rules. For golang/go#58387 Change-Id: Ib3b4c50368725191f0862c6c7c6d46b0568523c7 Reviewed-on: https://go-review.googlesource.com/c/sys/+/469835 Run-TryBot: Ian Lance Taylor <iant@google.com> Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com>
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT.
|
|
|
|
//go:build linux && (arm || arm64)
|
|
// +build linux
|
|
// +build arm arm64
|
|
|
|
package unix
|
|
|
|
import "unsafe"
|
|
|
|
// PtraceRegsArm is the registers used by arm binaries.
|
|
type PtraceRegsArm struct {
|
|
Uregs [18]uint32
|
|
}
|
|
|
|
// PtraceGetRegsArm fetches the registers used by arm binaries.
|
|
func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error {
|
|
return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))
|
|
}
|
|
|
|
// PtraceSetRegsArm sets the registers used by arm binaries.
|
|
func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error {
|
|
return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))
|
|
}
|
|
|
|
// PtraceRegsArm64 is the registers used by arm64 binaries.
|
|
type PtraceRegsArm64 struct {
|
|
Regs [31]uint64
|
|
Sp uint64
|
|
Pc uint64
|
|
Pstate uint64
|
|
}
|
|
|
|
// PtraceGetRegsArm64 fetches the registers used by arm64 binaries.
|
|
func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error {
|
|
return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))
|
|
}
|
|
|
|
// PtraceSetRegsArm64 sets the registers used by arm64 binaries.
|
|
func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error {
|
|
return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))
|
|
}
|