diff options
Diffstat (limited to 'libgo/go/syscall/syscall_linux_alpha.go')
-rw-r--r-- | libgo/go/syscall/syscall_linux_alpha.go | 66 |
1 files changed, 38 insertions, 28 deletions
diff --git a/libgo/go/syscall/syscall_linux_alpha.go b/libgo/go/syscall/syscall_linux_alpha.go index d58f8eb..713546c 100644 --- a/libgo/go/syscall/syscall_linux_alpha.go +++ b/libgo/go/syscall/syscall_linux_alpha.go @@ -6,42 +6,52 @@ package syscall +import "unsafe" + type PtraceRegs struct { - 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 + 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 Trap_a0 uint64 Trap_a1 uint64 Trap_a2 uint64 - Ps uint64 - Pc uint64 - Gp uint64 - R16 uint64 - R17 uint64 - R18 uint64 + Ps uint64 + Pc uint64 + Gp uint64 + R16 uint64 + R17 uint64 + R18 uint64 } func (r *PtraceRegs) PC() uint64 { - return r.Pc; + return r.Pc } func (r *PtraceRegs) SetPC(pc uint64) { - r.Pc = pc; + 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))) } |