syscall_linux_alpha.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // syscall_linux_alpha.go -- GNU/Linux ALPHA specific support
  2. // Copyright 2011 The Go Authors. All rights reserved.
  3. // Use of this source code is governed by a BSD-style
  4. // license that can be found in the LICENSE file.
  5. package syscall
  6. import "unsafe"
  7. type PtraceRegs struct {
  8. R0 uint64
  9. R1 uint64
  10. R2 uint64
  11. R3 uint64
  12. R4 uint64
  13. R5 uint64
  14. R6 uint64
  15. R7 uint64
  16. R8 uint64
  17. R19 uint64
  18. R20 uint64
  19. R21 uint64
  20. R22 uint64
  21. R23 uint64
  22. R24 uint64
  23. R25 uint64
  24. R26 uint64
  25. R27 uint64
  26. R28 uint64
  27. Hae uint64
  28. Trap_a0 uint64
  29. Trap_a1 uint64
  30. Trap_a2 uint64
  31. Ps uint64
  32. Pc uint64
  33. Gp uint64
  34. R16 uint64
  35. R17 uint64
  36. R18 uint64
  37. }
  38. func (r *PtraceRegs) PC() uint64 {
  39. return r.Pc
  40. }
  41. func (r *PtraceRegs) SetPC(pc uint64) {
  42. r.Pc = pc
  43. }
  44. func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
  45. return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
  46. }
  47. func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {
  48. return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
  49. }