mirror of
https://github.com/rwinkhart/sys.git
synced 2026-08-30 22:06:37 -04:00
For pairs of GOARCH values that can execute each other's binaries on the same system, such as 386 and amd64, add the definitions and functions required to fetch and set registers when debugging either variant. Fixes golang/go#9739 Change-Id: I7896ddef7d341ffaee56614ebd080dc38c708ed4 Reviewed-on: https://go-review.googlesource.com/73555 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
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)))
|
|
}
|