gem5  v20.1.0.0
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
IGbE::RxDescCache Class Reference
Inheritance diagram for IGbE::RxDescCache:
IGbE::DescCache< iGbReg::RxDesc > 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 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 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 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 IGbE::DescCache< iGbReg::RxDesc >
virtual Addr descBase () const=0
 
virtual long descHead () const=0
 
virtual long descTail () const=0
 
virtual long descLen () const=0
 
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 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 Serializable
static const std::string & currentSection ()
 Gets the fully-qualified name of the active section. More...
 
static void serializeAll (const std::string &cpt_dir)
 Serializes all the SimObjects. More...
 
static void unserializeGlobals (CheckpointIn &cp)
 
- Protected Types inherited from IGbE::DescCache< iGbReg::RxDesc >
typedef std::deque< iGbReg::RxDesc * > CacheType
 

Detailed Description

Definition at line 298 of file i8254xGBe.hh.

Constructor & Destructor Documentation

◆ RxDescCache()

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

Definition at line 1147 of file i8254xGBe.cc.

References pktComplete().

Member Function Documentation

◆ descBase()

Addr IGbE::RxDescCache::descBase ( ) const
inlineoverrideprotected

◆ descHead()

long IGbE::RxDescCache::descHead ( ) const
inlineoverrideprotected

◆ descLen()

long IGbE::RxDescCache::descLen ( ) const
inlineoverrideprotected

◆ descTail()

long IGbE::RxDescCache::descTail ( ) const
inlineoverrideprotected

◆ enableSm()

void IGbE::RxDescCache::enableSm ( )
overrideprotectedvirtual

Implements IGbE::DescCache< iGbReg::RxDesc >.

Definition at line 1449 of file i8254xGBe.cc.

References Draining.

◆ fetchAfterWb()

void IGbE::RxDescCache::fetchAfterWb ( )
inlineoverrideprotectedvirtual

◆ hasOutstandingEvents()

bool IGbE::RxDescCache::hasOutstandingEvents ( )
overridevirtual

Reimplemented from IGbE::DescCache< iGbReg::RxDesc >.

Definition at line 1468 of file i8254xGBe.cc.

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

◆ packetDone()

bool IGbE::RxDescCache::packetDone ( )

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

Definition at line 1458 of file i8254xGBe.cc.

Referenced by IGbE::rxStateMachine().

◆ pktComplete()

void IGbE::RxDescCache::pktComplete ( )

◆ pktSplitDone()

void IGbE::RxDescCache::pktSplitDone ( )

Definition at line 1164 of file i8254xGBe.cc.

References DPRINTF.

◆ serialize()

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

Serialize an object.

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

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 1477 of file i8254xGBe.cc.

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

◆ unserialize()

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

Unserialize an object.

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

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 1486 of file i8254xGBe.cc.

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

◆ updateHead()

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

◆ writePacket()

int 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 1179 of file i8254xGBe.cc.

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

Referenced by IGbE::rxStateMachine().

Member Data Documentation

◆ bytesCopied

unsigned IGbE::RxDescCache::bytesCopied
protected

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

Definition at line 319 of file i8254xGBe.hh.

◆ pktDataEvent

EventFunctionWrapper IGbE::RxDescCache::pktDataEvent

Definition at line 348 of file i8254xGBe.hh.

◆ pktDone

bool IGbE::RxDescCache::pktDone
protected

Definition at line 312 of file i8254xGBe.hh.

◆ pktEvent

EventFunctionWrapper IGbE::RxDescCache::pktEvent

Definition at line 342 of file i8254xGBe.hh.

◆ pktHdrEvent

EventFunctionWrapper IGbE::RxDescCache::pktHdrEvent

Definition at line 347 of file i8254xGBe.hh.

◆ splitCount

int IGbE::RxDescCache::splitCount
protected

Variable to head with header/data completion events.

Definition at line 315 of file i8254xGBe.hh.


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

Generated on Wed Sep 30 2020 14:02:26 for gem5 by doxygen 1.8.17