blob: 8c7517e407c5c0ed6546f3c4553b50063f55813f [file] [log] [blame]
// Copyright 2017 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 core
// A Thread represents an operating system thread.
type Thread struct {
pid uint64 // thread/process ID
regs []uint64 // set depends on arch
pc Address // program counter
sp Address // stack pointer
func (t *Thread) Pid() uint64 {
// Regs returns the set of register values for the thread.
// What registers go where is architecture-dependent.
// TODO: document for each architecture.
// TODO: do this in some arch-independent way?
func (t *Thread) Regs() []uint64 {
return t.regs
func (t *Thread) PC() Address {
return t.pc
func (t *Thread) SP() Address {
return t.sp
// TODO: link register?