Skip to content
Snippets Groups Projects
Select Git revision
  • v3 default
  • update_akita
  • solve-TLB-memory-leak
  • generic_lmf
  • v2
  • dir_latency
  • 103-storage-should-be-able-to-set-granularity
  • 104-support-tracing-memory-responses
  • akita_v3
  • 102-limit-tlb-concurrency
  • domained_timing
  • master protected
  • 97-gl0_invalidate_navisim
  • 81-implement-colt-tlb-for-gpu
  • fix_timing_order_issue
  • 86-dram-detailed-modeling
  • coherency-hmg
  • round_robin
  • scheduling-research
  • dram
  • v3.0.0-alpha.10
  • v3.0.0-alpha.9
  • v3.0.0-alpha.8
  • v3.0.0-alpha.7
  • v3.0.0-alpha.6
  • v2.5.0
  • v3.0.0-alpha.5
  • v2.4.2
  • v3.0.0-alpha.4
  • v3.0.0-alpha.3
  • v2.4.1
  • v3.0.0-alpha.1
  • v2.4.0
  • v2.3.2
  • v2.3.1
  • v2.3.0
  • v2.2.0
  • v2.1.2
  • v2.1.1
  • v2.1.0
40 results

atprotocol.go

atprotocol.go 5.20 KiB
package addresstranslator

import (
	"gitlab.com/akita/akita"
)

// An AddressTranslatorFlushReq asks the AT to clear its ports and any buffers.
// It will also not block all incoming and outgoing ports
type AddressTranslatorFlushReq struct {
	akita.MsgMeta
}

// Meta returns the meta data associated with the message.
func (r *AddressTranslatorFlushReq) Meta() *akita.MsgMeta {
	return &r.MsgMeta
}

// AddressTranslatorFlushReqBuilder can build AT flush requests
type AddressTranslatorFlushReqBuilder struct {
	sendTime akita.VTimeInSec
	src, dst akita.Port
}

// WithSendTime sets the send time of the request to build.:w
func (b AddressTranslatorFlushReqBuilder) WithSendTime(
	t akita.VTimeInSec,
) AddressTranslatorFlushReqBuilder {
	b.sendTime = t
	return b
}

// WithSrc sets the source of the request to build.
func (b AddressTranslatorFlushReqBuilder) WithSrc(src akita.Port) AddressTranslatorFlushReqBuilder {
	b.src = src
	return b
}

// WithDst sets the destination of the request to build.
func (b AddressTranslatorFlushReqBuilder) WithDst(dst akita.Port) AddressTranslatorFlushReqBuilder {
	b.dst = dst
	return b
}

// Build creats a new AddressTranslatorFlushReq
func (b AddressTranslatorFlushReqBuilder) Build() *AddressTranslatorFlushReq {
	r := &AddressTranslatorFlushReq{}
	r.ID = akita.GetIDGenerator().Generate()
	r.Src = b.src
	r.Dst = b.dst
	r.SendTime = b.sendTime

	return r
}

// A AddressTranslatorFlushRsp is a response from AT indicating flush is complete
type AddressTranslatorFlushRsp struct {
	akita.MsgMeta
}

// Meta returns the meta data associated with the message.
func (r *AddressTranslatorFlushRsp) Meta() *akita.MsgMeta {
	return &r.MsgMeta
}

// AddressTranslatorFlushRspBuilder can build AT flush rsp
type AddressTranslatorFlushRspBuilder struct {
	sendTime akita.VTimeInSec
	src, dst akita.Port
}