// syscall_linux_s390.go -- GNU/Linux s390 specific support // Copyright 2014 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 import "unsafe" func (r *PtraceRegs) PC() uint64 { return uint64(r.Psw.Addr) } func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = uint32(pc) } const syscall_PTRACE_PEEKUSR_AREA = 0x5000 const syscall_PTRACE_POKEUSR_AREA = 0x5001 type syscall_ptrace_area struct { len uint32 kernel_addr uint32 process_addr uint32 } func PtraceGetRegs(pid int, regs *PtraceRegs) (err error) { parea := syscall_ptrace_area{ 12, 0, uint32(uintptr(unsafe.Pointer(regs))), } return ptrace(syscall_PTRACE_PEEKUSR_AREA, pid, uintptr(unsafe.Pointer(&parea)), 0) } func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { parea := syscall_ptrace_area{ 12, 0, uint32(uintptr(unsafe.Pointer(regs))), } return ptrace(syscall_PTRACE_POKEUSR_AREA, pid, uintptr(unsafe.Pointer(&parea)), 0) }