gem5  v22.1.0.0
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
gem5::IGbE::RxDescCache Class Reference
Inheritance diagram for gem5::IGbE::RxDescCache:
gem5::IGbE::DescCache< igbreg::RxDesc > gem5::Serializable

Public Member Functions

 RxDescCache (IGbE *i, std::string n, int s)
 
int writePacket (EthPacketPtr packet, int pkt_offset)
 Write the given packet into the buffer(s) pointed to by the descriptor and update the book keeping. More...
 
void pktComplete ()
 Called by event when dma to write packet is completed. More...
 
bool packetDone ()
 Check if the dma on the packet has completed and RX state machine can continue. More...
 
void pktSplitDone ()
 
bool hasOutstandingEvents () override
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
- Public Member Functions inherited from gem5::IGbE::DescCache< igbreg::RxDesc >
 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. More...
 
void writeback (Addr aMask)
 
void writeback1 ()
 
void fetchDescriptors ()
 Fetch a chunk of descriptors into the descriptor cache. More...
 
void fetchDescriptors1 ()
 
void fetchComplete ()
 Called by event when dma to read descriptors is completed. More...
 
void wbComplete ()
 Called by event when dma to writeback descriptors is completed. More...
 
unsigned descLeft () const
 
unsigned descUsed () const
 
unsigned descUnused () const
 
void reset ()
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
- 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. More...
 
void serializeSection (CheckpointOut &cp, const std::string &name) const
 
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object. More...
 
void unserializeSection (CheckpointIn &cp, const std::string &name)
 

Public Attributes

EventFunctionWrapper pktEvent
 
EventFunctionWrapper pktHdrEvent
 
EventFunctionWrapper pktDataEvent
 
- Public Attributes inherited from gem5::IGbE::DescCache< igbreg::RxDesc >
std::string annSmFetch
 Annotate sm. More...
 
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 descLen () const override
 
long descTail () const override
 
void updateHead (long h) override
 
void enableSm () override
 
void fetchAfterWb () override
 
- Protected Member Functions inherited from gem5::IGbE::DescCache< igbreg::RxDesc >
virtual void actionAfterWb ()
 
Addr pciToDma (Addr a)
 Shortcut for DMA address translation. More...
 

Protected Attributes

bool pktDone
 
int splitCount
 Variable to head with header/data completion events. More...
 
unsigned bytesCopied
 Bytes of packet that have been copied, so we know when to set EOP. More...
 
- Protected Attributes inherited from gem5::IGbE::DescCache< igbreg::RxDesc >
CacheType usedCache
 
CacheType unusedCache
 
igbreg::RxDescfetchBuf
 
igbreg::RxDescwbBuf
 
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. More...
 

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. More...
 
static void generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream)
 Generate a checkpoint file so that the serialization can be routed to it. More...
 
- Protected Types inherited from gem5::IGbE::DescCache< igbreg::RxDesc >
typedef std::deque< igbreg::RxDesc * > CacheType
 

Detailed Description

Definition at line 305 of file i8254xGBe.hh.

Constructor & Destructor Documentation

◆ RxDescCache()

gem5::IGbE::RxDescCache::RxDescCache ( IGbE i,
std::string  n,
int  s 
)

Definition at line 1148 of file i8254xGBe.cc.

References pktComplete().

Member Function Documentation

◆ descBase()

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

◆ descHead()

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

◆ descLen()

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

◆ descTail()

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

◆ enableSm()

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

Implements gem5::IGbE::DescCache< igbreg::RxDesc >.

Definition at line 1450 of file i8254xGBe.cc.

References gem5::Draining.

◆ fetchAfterWb()

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

◆ hasOutstandingEvents()

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

Reimplemented from gem5::IGbE::DescCache< igbreg::RxDesc >.

Definition at line 1469 of file i8254xGBe.cc.

Referenced by gem5::IGbE::checkDrain(), and gem5::IGbE::drain().

◆ packetDone()

bool gem5::IGbE::RxDescCache::packetDone ( )

Check if the dma on the packet has completed and RX state machine can continue.

Definition at line 1459 of file i8254xGBe.cc.

Referenced by gem5::IGbE::rxStateMachine().

◆ pktComplete()

void gem5::IGbE::RxDescCache::pktComplete ( )

◆ pktSplitDone()

void gem5::IGbE::RxDescCache::pktSplitDone ( )

Definition at line 1165 of file i8254xGBe.cc.

References DPRINTF.

◆ serialize()

void gem5::IGbE::RxDescCache::serialize ( CheckpointOut cp) const
overridevirtual

Serialize an object.

Output an object's state into the current checkpoint section.

Parameters
cpCheckpoint state

Implements gem5::Serializable.

Definition at line 1478 of file i8254xGBe.cc.

References gem5::IGbE::DescCache< T >::serialize(), and SERIALIZE_SCALAR.

◆ unserialize()

void gem5::IGbE::RxDescCache::unserialize ( CheckpointIn cp)
overridevirtual

Unserialize an object.

Read an object's state from the current checkpoint section.

Parameters
cpCheckpoint state

Implements gem5::Serializable.

Definition at line 1487 of file i8254xGBe.cc.

References gem5::IGbE::DescCache< T >::unserialize(), and UNSERIALIZE_SCALAR.

◆ updateHead()

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

◆ writePacket()

int gem5::IGbE::RxDescCache::writePacket ( EthPacketPtr  packet,
int  pkt_offset 
)

Write the given packet into the buffer(s) pointed to by the descriptor and update the book keeping.

Should only be called when there are no dma's pending.

Parameters
packetethernet packet to write
pkt_offsetbytes already copied from the packet to memory
Returns
pkt_offset + number of bytes copied during this call

Definition at line 1180 of file i8254xGBe.cc.

References gem5::igbreg::RxDesc::adv_read, gem5::igbreg::RxDesc::adv_wb, DPRINTF, gem5::networking::hsplit(), gem5::htole(), gem5::igbreg::RxDesc::legacy, panic, gem5::PciDevice::pciToDma(), gem5::igbreg::RXDT_ADV_ONEBUF, gem5::igbreg::RXDT_ADV_SPLIT_A, and gem5::igbreg::RXDT_LEGACY.

Referenced by gem5::IGbE::rxStateMachine().

Member Data Documentation

◆ bytesCopied

unsigned gem5::IGbE::RxDescCache::bytesCopied
protected

Bytes of packet that have been copied, so we know when to set EOP.

Definition at line 326 of file i8254xGBe.hh.

◆ pktDataEvent

EventFunctionWrapper gem5::IGbE::RxDescCache::pktDataEvent

Definition at line 355 of file i8254xGBe.hh.

◆ pktDone

bool gem5::IGbE::RxDescCache::pktDone
protected

Definition at line 319 of file i8254xGBe.hh.

◆ pktEvent

EventFunctionWrapper gem5::IGbE::RxDescCache::pktEvent

Definition at line 349 of file i8254xGBe.hh.

◆ pktHdrEvent

EventFunctionWrapper gem5::IGbE::RxDescCache::pktHdrEvent

Definition at line 354 of file i8254xGBe.hh.

◆ splitCount

int gem5::IGbE::RxDescCache::splitCount
protected

Variable to head with header/data completion events.

Definition at line 322 of file i8254xGBe.hh.


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

Generated on Wed Dec 21 2022 10:23:20 for gem5 by doxygen 1.9.1