mirror of
https://github.com/golang/sys.git
synced 2026-02-09 04:06:04 +03:00
Since arm64 GNU/Linux version 2.6.34, PTRACE_GETREGS was replaced by PTRACE_GETREGSET, in order to get or set the general purpose and floating-point register values, PTRACE_GETREGSET/PTRACE_SETREGSET request type and a proper "NT_XXX" constant values should be used. For the sake of not breaking the existing API, we added two functions PtraceGetRegSetArm64 and PtraceSetRegSetArm64, they take an additional argument "addr", and use PTRACE_GETREGSET and PTRACE_SETREGSET request types respectively. Change-Id: I14c55733e15cea4b7d775187b1018fcb2880d6a9 Reviewed-on: https://go-review.googlesource.com/c/sys/+/204418 Run-TryBot: eric fang <eric.fang@arm.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
51 lines
1.4 KiB
Go
51 lines
1.4 KiB
Go
// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT.
|
|
|
|
// +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 ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
|
|
}
|
|
|
|
// PtraceSetRegsMips sets the registers used by mips binaries.
|
|
func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error {
|
|
return ptrace(PTRACE_SETREGS, pid, 0, uintptr(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 ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
|
|
}
|
|
|
|
// PtraceSetRegsMips64 sets the registers used by mips64 binaries.
|
|
func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error {
|
|
return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
|
|
}
|