diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-01-31 14:23:07 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-01-31 14:23:07 +0000 |
commit | e8738e985e0f68605beadaff521afbb4033c6c80 (patch) | |
tree | 5ca4ef3af42f636b13d4cd59ca56beb3a1f4e7af /libgo/go | |
parent | 458842fb3819b2c4c2289476084f045714dd4738 (diff) | |
download | gcc-e8738e985e0f68605beadaff521afbb4033c6c80.zip gcc-e8738e985e0f68605beadaff521afbb4033c6c80.tar.gz gcc-e8738e985e0f68605beadaff521afbb4033c6c80.tar.bz2 |
syscall: Don't use PtraceRegs if it is not defined.
From-SVN: r183758
Diffstat (limited to 'libgo/go')
-rw-r--r-- | libgo/go/syscall/libcall_linux.go | 8 | ||||
-rw-r--r-- | libgo/go/syscall/syscall_linux_386.go | 14 | ||||
-rw-r--r-- | libgo/go/syscall/syscall_linux_alpha.go | 66 | ||||
-rw-r--r-- | libgo/go/syscall/syscall_linux_amd64.go | 14 |
4 files changed, 62 insertions, 40 deletions
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go index 3ff5d5f..7e88d04 100644 --- a/libgo/go/syscall/libcall_linux.go +++ b/libgo/go/syscall/libcall_linux.go @@ -139,14 +139,6 @@ func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) } -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))) -} - func PtraceSetOptions(pid int, options int) (err error) { return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options)) } diff --git a/libgo/go/syscall/syscall_linux_386.go b/libgo/go/syscall/syscall_linux_386.go index aca9c7b..9a988a5 100644 --- a/libgo/go/syscall/syscall_linux_386.go +++ b/libgo/go/syscall/syscall_linux_386.go @@ -6,10 +6,20 @@ package syscall +import "unsafe" + func (r *PtraceRegs) PC() uint64 { - return uint64(uint32(r.Eip)); + return uint64(uint32(r.Eip)) } func (r *PtraceRegs) SetPC(pc uint64) { - r.Eip = int32(pc); + r.Eip = int32(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))) } 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))) } diff --git a/libgo/go/syscall/syscall_linux_amd64.go b/libgo/go/syscall/syscall_linux_amd64.go index 9932579..609faed06 100644 --- a/libgo/go/syscall/syscall_linux_amd64.go +++ b/libgo/go/syscall/syscall_linux_amd64.go @@ -6,10 +6,20 @@ package syscall +import "unsafe" + func (r *PtraceRegs) PC() uint64 { - return r.Rip; + return r.Rip } func (r *PtraceRegs) SetPC(pc uint64) { - r.Rip = pc; + r.Rip = 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))) } |