1 // syscall_linux_s390.go -- GNU/Linux s390 specific support
3 // Copyright 2014 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
7 // See the s390x version for why we don't use GETREGSET/SETREGSET
13 func (r
*PtraceRegs
) PC() uint64 { return uint64(r
.Psw
.addr
) }
15 func (r
*PtraceRegs
) SetPC(pc
uint64) { r
.Psw
.addr
= uint32(pc
) }
17 func PtraceGetRegs(pid
int, regs
*PtraceRegs
) (err error
) {
18 parea
:= _ptrace_area
{
21 uint32(uintptr(unsafe
.Pointer(regs
))),
23 return ptrace(PTRACE_PEEKUSR_AREA
, pid
, uintptr(unsafe
.Pointer(&parea
)), 0)
26 func PtraceSetRegs(pid
int, regs
*PtraceRegs
) (err error
) {
27 parea
:= _ptrace_area
{
30 uint32(uintptr(unsafe
.Pointer(regs
))),
32 return ptrace(PTRACE_POKEUSR_AREA
, pid
, uintptr(unsafe
.Pointer(&parea
)), 0)