gem5  v20.0.0.2
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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 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)
 
static void unserializeGlobals (CheckpointIn &cp)
 
- Protected Types inherited from IGbE::DescCache< iGbReg::RxDesc >
typedef std::deque< iGbReg::RxDesc *> CacheType
 

Detailed Description

Definition at line 336 of file i8254xGBe.hh.

Constructor & Destructor Documentation

◆ RxDescCache()

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

Member Function Documentation

◆ descBase()

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

◆ descHead()

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

◆ descLen()

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

◆ descTail()

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

◆ enableSm()

void IGbE::RxDescCache::enableSm ( )
overrideprotectedvirtual

◆ fetchAfterWb()

void IGbE::RxDescCache::fetchAfterWb ( )
inlineoverrideprotectedvirtual

◆ hasOutstandingEvents()

bool IGbE::RxDescCache::hasOutstandingEvents ( )
overridevirtual

◆ packetDone()

bool IGbE::RxDescCache::packetDone ( )

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

Definition at line 1514 of file i8254xGBe.cc.

References pktDone.

Referenced by IGbE::rxStateMachine().

◆ pktComplete()

void IGbE::RxDescCache::pktComplete ( )

◆ pktSplitDone()

void IGbE::RxDescCache::pktSplitDone ( )

Definition at line 1215 of file i8254xGBe.cc.

References DPRINTF, pktComplete(), and splitCount.

Referenced by RxDescCache().

◆ 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 1533 of file i8254xGBe.cc.

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

◆ 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 1542 of file i8254xGBe.cc.

References bytesCopied, pktDone, splitCount, 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 1230 of file i8254xGBe.cc.

References iGbReg::RxDesc::adv_read, iGbReg::RxDesc::adv_wb, iGbReg::Regs::SRRCTL::bufLen(), bytesCopied, iGbReg::Regs::RCTL::descSize(), DmaDevice::dmaWrite(), DPRINTF, iGbReg::Regs::SRRCTL::hdrLen(), Net::hsplit(), htole(), IGbE::DescCache< iGbReg::RxDesc >::igbe, iGbReg::RxDesc::legacy, panic, IGbE::DescCache< iGbReg::RxDesc >::pciToDma(), pktDataEvent, pktDone, pktEvent, pktHdrEvent, IGbE::DescCache< iGbReg::RxDesc >::pktPtr, iGbReg::Regs::rctl, IGbE::regs, iGbReg::RXDT_ADV_ONEBUF, iGbReg::RXDT_ADV_SPLIT_A, iGbReg::RXDT_LEGACY, IGbE::rxWriteDelay, iGbReg::Regs::srrctl, and IGbE::DescCache< iGbReg::RxDesc >::unusedCache.

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 357 of file i8254xGBe.hh.

Referenced by pktComplete(), serialize(), unserialize(), and writePacket().

◆ pktDataEvent

EventFunctionWrapper IGbE::RxDescCache::pktDataEvent

Definition at line 386 of file i8254xGBe.hh.

Referenced by hasOutstandingEvents(), RxDescCache(), and writePacket().

◆ pktDone

bool IGbE::RxDescCache::pktDone
protected

Definition at line 350 of file i8254xGBe.hh.

Referenced by packetDone(), pktComplete(), serialize(), unserialize(), and writePacket().

◆ pktEvent

EventFunctionWrapper IGbE::RxDescCache::pktEvent

Definition at line 380 of file i8254xGBe.hh.

Referenced by hasOutstandingEvents(), and writePacket().

◆ pktHdrEvent

EventFunctionWrapper IGbE::RxDescCache::pktHdrEvent

Definition at line 385 of file i8254xGBe.hh.

Referenced by hasOutstandingEvents(), RxDescCache(), and writePacket().

◆ splitCount

int IGbE::RxDescCache::splitCount
protected

Variable to head with header/data completion events.

Definition at line 353 of file i8254xGBe.hh.

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


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

Generated on Mon Jun 8 2020 15:45:24 for gem5 by doxygen 1.8.13