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>
52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT.
|
|
|
|
//go:build linux && (mips || mips64)
|
|
// +build linux
|
|
// +build mips mips64
|
|
|
|
package unix
|
|
|
|
import "unsafe"
|
|
|
|
// PtraceRegsMips is the registers used by mips binaries.
|
|
type PtraceRegsMips struct {
|
|
Regs [32]uint64
|
|
Lo uint64
|
|
Hi uint64
|
|
Epc uint64
|
|
Badvaddr uint64
|
|
Status uint64
|
|
Cause uint64
|
|
}
|
|
|
|
// PtraceGetRegsMips fetches the registers used by mips binaries.
|
|
func PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error {
|
|
return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))
|
|
}
|
|
|
|
// PtraceSetRegsMips sets the registers used by mips binaries.
|
|
func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error {
|
|
return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))
|
|
}
|
|
|
|
// PtraceRegsMips64 is the registers used by mips64 binaries.
|
|
type PtraceRegsMips64 struct {
|
|
Regs [32]uint64
|
|
Lo uint64
|
|
Hi uint64
|
|
Epc uint64
|
|
Badvaddr uint64
|
|
Status uint64
|
|
Cause uint64
|
|
}
|
|
|
|
// PtraceGetRegsMips64 fetches the registers used by mips64 binaries.
|
|
func PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error {
|
|
return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))
|
|
}
|
|
|
|
// PtraceSetRegsMips64 sets the registers used by mips64 binaries.
|
|
func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error {
|
|
return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))
|
|
}
|