2011-04-02 01:02:16 +02:00
|
|
|
// syscall_linux_alpha.go -- GNU/Linux ALPHA specific support
|
|
|
|
|
|
|
|
// Copyright 2011 The Go Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
package syscall
|
|
|
|
|
2012-01-31 15:23:07 +01:00
|
|
|
import "unsafe"
|
|
|
|
|
2011-05-31 20:15:14 +02:00
|
|
|
type PtraceRegs struct {
|
2012-01-31 15:23:07 +01:00
|
|
|
R0 uint64
|
|
|
|
R1 uint64
|
|
|
|
R2 uint64
|
|
|
|
R3 uint64
|
|
|
|
R4 uint64
|
|
|
|
R5 uint64
|
|
|
|
R6 uint64
|
|
|
|
R7 uint64
|
|
|
|
R8 uint64
|
|
|
|
R19 uint64
|
|
|
|
R20 uint64
|
|
|
|
R21 uint64
|
|
|
|
R22 uint64
|
|
|
|
R23 uint64
|
|
|
|
R24 uint64
|
|
|
|
R25 uint64
|
|
|
|
R26 uint64
|
|
|
|
R27 uint64
|
|
|
|
R28 uint64
|
|
|
|
Hae uint64
|
2011-05-31 20:15:14 +02:00
|
|
|
Trap_a0 uint64
|
|
|
|
Trap_a1 uint64
|
|
|
|
Trap_a2 uint64
|
2012-01-31 15:23:07 +01:00
|
|
|
Ps uint64
|
|
|
|
Pc uint64
|
|
|
|
Gp uint64
|
|
|
|
R16 uint64
|
|
|
|
R17 uint64
|
|
|
|
R18 uint64
|
2011-05-31 20:15:14 +02:00
|
|
|
}
|
|
|
|
|
2011-04-02 01:02:16 +02:00
|
|
|
func (r *PtraceRegs) PC() uint64 {
|
2012-01-31 15:23:07 +01:00
|
|
|
return r.Pc
|
2011-04-02 01:02:16 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
func (r *PtraceRegs) SetPC(pc uint64) {
|
2012-01-31 15:23:07 +01:00
|
|
|
r.Pc = pc
|
|
|
|
}
|
|
|
|
|
|
|
|
func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
|
|
|
|
return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
|
|
|
|
}
|
|
|
|
|
|
|
|
func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {
|
|
|
|
return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
|
2011-04-02 01:02:16 +02:00
|
|
|
}
|