gem5 v25.0.0.1
Loading...
Searching...
No Matches
gem5::IGbE::TxDescCache Class Reference
Inheritance diagram for gem5::IGbE::TxDescCache:
gem5::IGbE::DescCache< igbreg::TxDesc > gem5::Serializable

Public Member Functions

 TxDescCache (IGbE *i, std::string n, int s)
unsigned getPacketSize (EthPacketPtr p)
 Tell the cache to DMA a packet from main memory into its buffer and return the size the of the packet to reserve space in tx fifo.
void getPacketData (EthPacketPtr p)
void processContextDesc ()
unsigned descInBlock (unsigned num_desc)
 Return the number of dsecriptors in a cache block for threshold operations.
bool packetAvailable ()
 Ask if the packet has been transfered so the state machine can give it to the fifo.
bool packetWaiting ()
 Ask if we are still waiting for the packet to be transfered.
bool packetMultiDesc ()
 Ask if this packet is composed of multiple descriptors so even if we've got data, we need to wait for more before we can send it out.
void pktComplete ()
 Called by event when dma to write packet is completed.
void headerComplete ()
void completionWriteback (Addr a, bool enabled)
bool hasOutstandingEvents () override
void nullCallback ()
void serialize (CheckpointOut &cp) const override
 Serialize an object.
void unserialize (CheckpointIn &cp) override
 Unserialize an object.
Public Member Functions inherited from gem5::IGbE::DescCache< igbreg::TxDesc >
 DescCache (IGbE *i, const std::string n, int s)
virtual ~DescCache ()
std::string name ()
void areaChanged ()
 If the address/len/head change when we've got descriptors that are dirty that is very bad.
void writeback (Addr aMask)
void writeback1 ()
void fetchDescriptors ()
 Fetch a chunk of descriptors into the descriptor cache.
void fetchDescriptors1 ()
void fetchComplete ()
 Called by event when dma to read descriptors is completed.
void wbComplete ()
 Called by event when dma to writeback descriptors is completed.
unsigned descLeft () const
unsigned descUsed () const
unsigned descUnused () const
void reset ()
Public Member Functions inherited from gem5::Serializable
 Serializable ()
virtual ~Serializable ()
void serializeSection (CheckpointOut &cp, const char *name) const
 Serialize an object into a new section.
void serializeSection (CheckpointOut &cp, const std::string &name) const
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object.
void unserializeSection (CheckpointIn &cp, const std::string &name)

Public Attributes

EventFunctionWrapper pktEvent
EventFunctionWrapper headerEvent
EventFunctionWrapper nullEvent
Public Attributes inherited from gem5::IGbE::DescCache< igbreg::TxDesc >
std::string annSmFetch
 Annotate sm.
std::string annSmWb
std::string annUnusedDescQ
std::string annUsedCacheQ
std::string annUsedDescQ
std::string annUnusedCacheQ
std::string annDescQ
EventFunctionWrapper wbDelayEvent
EventFunctionWrapper fetchDelayEvent
EventFunctionWrapper fetchEvent
EventFunctionWrapper wbEvent

Protected Member Functions

Addr descBase () const override
long descHead () const override
long descTail () const override
long descLen () const override
void updateHead (long h) override
void enableSm () override
void actionAfterWb () override
void fetchAfterWb () override
Protected Member Functions inherited from gem5::IGbE::DescCache< igbreg::TxDesc >
Addr pciToDma (Addr a)
 Shortcut for DMA address translation.

Protected Attributes

bool pktDone
bool isTcp
bool pktWaiting
bool pktMultiDesc
Addr completionAddress
bool completionEnabled
uint32_t descEnd
bool useTso
Addr tsoHeaderLen
Addr tsoMss
Addr tsoTotalLen
Addr tsoUsedLen
Addr tsoPrevSeq
Addr tsoPktPayloadBytes
bool tsoLoadedHeader
bool tsoPktHasHeader
uint8_t tsoHeader [256]
Addr tsoDescBytesUsed
Addr tsoCopyBytes
int tsoPkts
Protected Attributes inherited from gem5::IGbE::DescCache< igbreg::TxDesc >
CacheType usedCache
CacheType unusedCache
igbreg::TxDescfetchBuf
igbreg::TxDescwbBuf
IGbEigbe
std::string _name
int cachePnt
int size
int curFetching
int wbOut
bool moreToWb
Addr wbAlignment
EthPacketPtr pktPtr
 The packet that is currently being dmad to memory if any.

Additional Inherited Members

Static Public Member Functions inherited from gem5::Serializable
static const std::string & currentSection ()
 Gets the fully-qualified name of the active section.
static void generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream)
 Generate a checkpoint file so that the serialization can be routed to it.
Protected Types inherited from gem5::IGbE::DescCache< igbreg::TxDesc >
typedef std::deque< igbreg::TxDesc * > CacheType

Detailed Description

Definition at line 366 of file i8254xGBe.hh.

Constructor & Destructor Documentation

◆ TxDescCache()

Member Function Documentation

◆ actionAfterWb()

void gem5::IGbE::TxDescCache::actionAfterWb ( )
overrideprotectedvirtual

◆ completionWriteback()

void gem5::IGbE::TxDescCache::completionWriteback ( Addr a,
bool enabled )
inline

◆ descBase()

Addr gem5::IGbE::TxDescCache::descBase ( ) const
inlineoverrideprotectedvirtual

◆ descHead()

long gem5::IGbE::TxDescCache::descHead ( ) const
inlineoverrideprotectedvirtual

◆ descInBlock()

unsigned gem5::IGbE::TxDescCache::descInBlock ( unsigned num_desc)
inline

Return the number of dsecriptors in a cache block for threshold operations.

Definition at line 422 of file i8254xGBe.hh.

References gem5::IGbE::DescCache< igbreg::TxDesc >::igbe.

Referenced by pktComplete().

◆ descLen()

long gem5::IGbE::TxDescCache::descLen ( ) const
inlineoverrideprotectedvirtual

◆ descTail()

long gem5::IGbE::TxDescCache::descTail ( ) const
inlineoverrideprotectedvirtual

◆ enableSm()

void gem5::IGbE::TxDescCache::enableSm ( )
overrideprotectedvirtual

◆ fetchAfterWb()

void gem5::IGbE::TxDescCache::fetchAfterWb ( )
inlineoverrideprotectedvirtual

◆ getPacketData()

◆ getPacketSize()

unsigned gem5::IGbE::TxDescCache::getPacketSize ( EthPacketPtr p)

Tell the cache to DMA a packet from main memory into its buffer and return the size the of the packet to reserve space in tx fifo.

Returns
size of the packet

Definition at line 1619 of file i8254xGBe.cc.

References gem5::igbreg::TxDesc::d1, gem5::igbreg::TxDesc::d2, DPRINTF, gem5::igbreg::txd_op::getLen(), gem5::MipsISA::p, tsoCopyBytes, tsoDescBytesUsed, tsoHeaderLen, tsoLoadedHeader, tsoMss, tsoPktHasHeader, tsoTotalLen, tsoUsedLen, gem5::IGbE::DescCache< igbreg::TxDesc >::unusedCache, and useTso.

◆ hasOutstandingEvents()

bool gem5::IGbE::TxDescCache::hasOutstandingEvents ( )
overridevirtual

◆ headerComplete()

◆ nullCallback()

void gem5::IGbE::TxDescCache::nullCallback ( )
inline

Definition at line 465 of file i8254xGBe.hh.

References DPRINTF.

◆ packetAvailable()

bool gem5::IGbE::TxDescCache::packetAvailable ( )

Ask if the packet has been transfered so the state machine can give it to the fifo.

Returns
packet available in descriptor cache

Definition at line 1976 of file i8254xGBe.cc.

References pktDone.

◆ packetMultiDesc()

bool gem5::IGbE::TxDescCache::packetMultiDesc ( )
inline

Ask if this packet is composed of multiple descriptors so even if we've got data, we need to wait for more before we can send it out.

Returns
packet can't be sent out because it's a multi-descriptor packet

Definition at line 444 of file i8254xGBe.hh.

References pktMultiDesc.

◆ packetWaiting()

bool gem5::IGbE::TxDescCache::packetWaiting ( )
inline

Ask if we are still waiting for the packet to be transfered.

Returns
packet still in transit.

Definition at line 436 of file i8254xGBe.hh.

References pktWaiting.

◆ pktComplete()

◆ processContextDesc()

◆ serialize()

void gem5::IGbE::TxDescCache::serialize ( CheckpointOut & cp) const
overridevirtual

◆ unserialize()

void gem5::IGbE::TxDescCache::unserialize ( CheckpointIn & cp)
overridevirtual

◆ updateHead()

void gem5::IGbE::TxDescCache::updateHead ( long h)
inlineoverrideprotectedvirtual

Member Data Documentation

◆ completionAddress

Addr gem5::IGbE::TxDescCache::completionAddress
protected

Definition at line 387 of file i8254xGBe.hh.

Referenced by actionAfterWb(), completionWriteback(), serialize(), TxDescCache(), and unserialize().

◆ completionEnabled

bool gem5::IGbE::TxDescCache::completionEnabled
protected

Definition at line 388 of file i8254xGBe.hh.

Referenced by actionAfterWb(), completionWriteback(), serialize(), TxDescCache(), and unserialize().

◆ descEnd

uint32_t gem5::IGbE::TxDescCache::descEnd
protected

Definition at line 389 of file i8254xGBe.hh.

Referenced by actionAfterWb(), serialize(), and unserialize().

◆ headerEvent

EventFunctionWrapper gem5::IGbE::TxDescCache::headerEvent

Definition at line 452 of file i8254xGBe.hh.

Referenced by processContextDesc().

◆ isTcp

bool gem5::IGbE::TxDescCache::isTcp
protected

Definition at line 384 of file i8254xGBe.hh.

Referenced by processContextDesc(), serialize(), TxDescCache(), and unserialize().

◆ nullEvent

EventFunctionWrapper gem5::IGbE::TxDescCache::nullEvent

Definition at line 468 of file i8254xGBe.hh.

Referenced by actionAfterWb().

◆ pktDone

bool gem5::IGbE::TxDescCache::pktDone
protected

Definition at line 383 of file i8254xGBe.hh.

Referenced by packetAvailable(), pktComplete(), serialize(), TxDescCache(), and unserialize().

◆ pktEvent

EventFunctionWrapper gem5::IGbE::TxDescCache::pktEvent

Definition at line 449 of file i8254xGBe.hh.

Referenced by getPacketData(), hasOutstandingEvents(), and TxDescCache().

◆ pktMultiDesc

bool gem5::IGbE::TxDescCache::pktMultiDesc
protected

Definition at line 386 of file i8254xGBe.hh.

Referenced by packetMultiDesc(), pktComplete(), serialize(), TxDescCache(), and unserialize().

◆ pktWaiting

bool gem5::IGbE::TxDescCache::pktWaiting
protected

◆ tsoCopyBytes

Addr gem5::IGbE::TxDescCache::tsoCopyBytes
protected

◆ tsoDescBytesUsed

Addr gem5::IGbE::TxDescCache::tsoDescBytesUsed
protected

◆ tsoHeader

uint8_t gem5::IGbE::TxDescCache::tsoHeader[256]
protected

Definition at line 402 of file i8254xGBe.hh.

Referenced by getPacketData(), processContextDesc(), serialize(), and unserialize().

◆ tsoHeaderLen

Addr gem5::IGbE::TxDescCache::tsoHeaderLen
protected

◆ tsoLoadedHeader

bool gem5::IGbE::TxDescCache::tsoLoadedHeader
protected

◆ tsoMss

Addr gem5::IGbE::TxDescCache::tsoMss
protected

◆ tsoPktHasHeader

bool gem5::IGbE::TxDescCache::tsoPktHasHeader
protected

◆ tsoPktPayloadBytes

Addr gem5::IGbE::TxDescCache::tsoPktPayloadBytes
protected

Definition at line 399 of file i8254xGBe.hh.

Referenced by serialize(), TxDescCache(), and unserialize().

◆ tsoPkts

int gem5::IGbE::TxDescCache::tsoPkts
protected

Definition at line 405 of file i8254xGBe.hh.

Referenced by pktComplete(), processContextDesc(), serialize(), TxDescCache(), and unserialize().

◆ tsoPrevSeq

Addr gem5::IGbE::TxDescCache::tsoPrevSeq
protected

Definition at line 398 of file i8254xGBe.hh.

Referenced by pktComplete(), processContextDesc(), serialize(), TxDescCache(), and unserialize().

◆ tsoTotalLen

Addr gem5::IGbE::TxDescCache::tsoTotalLen
protected

◆ tsoUsedLen

Addr gem5::IGbE::TxDescCache::tsoUsedLen
protected

◆ useTso

bool gem5::IGbE::TxDescCache::useTso
protected

The documentation for this class was generated from the following files:

Generated on Sat Oct 18 2025 08:06:51 for gem5 by doxygen 1.14.0