59 func PtraceGetFsBase(pid int, fsbase *int64) (err error) { |
59 func PtraceGetFsBase(pid int, fsbase *int64) (err error) { |
60 return ptrace(PT_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) |
60 return ptrace(PT_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) |
61 } |
61 } |
62 |
62 |
63 func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { |
63 func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { |
64 ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} |
64 ioDesc := PtraceIoDesc{Op: int32(req), Offs: uintptr(unsafe.Pointer(addr)), Addr: uintptr(unsafe.Pointer(&out[0])), Len: uint32(countin)} |
65 err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) |
65 err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) |
66 return int(ioDesc.Len), err |
66 return int(ioDesc.Len), err |
67 } |
67 } |