gem5 v24.0.0.0
|
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. | |
void | pktComplete () |
Called by event when dma to write packet is completed. | |
bool | packetDone () |
Check if the dma on the packet has completed and RX state machine can continue. | |
void | pktSplitDone () |
bool | hasOutstandingEvents () override |
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::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. | |
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 | pktHdrEvent |
EventFunctionWrapper | pktDataEvent |
Public Attributes inherited from gem5::IGbE::DescCache< igbreg::RxDesc > | |
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 | 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. | |
Protected Attributes | |
bool | pktDone |
int | splitCount |
Variable to head with header/data completion events. | |
unsigned | bytesCopied |
Bytes of packet that have been copied, so we know when to set EOP. | |
Protected Attributes inherited from gem5::IGbE::DescCache< igbreg::RxDesc > | |
CacheType | usedCache |
CacheType | unusedCache |
igbreg::RxDesc * | fetchBuf |
igbreg::RxDesc * | wbBuf |
IGbE * | igbe |
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::RxDesc > | |
typedef std::deque< igbreg::RxDesc * > | CacheType |
Definition at line 305 of file i8254xGBe.hh.
gem5::IGbE::RxDescCache::RxDescCache | ( | IGbE * | i, |
std::string | n, | ||
int | s ) |
Definition at line 1148 of file i8254xGBe.cc.
References pktComplete().
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::RxDesc >.
Definition at line 308 of file i8254xGBe.hh.
References gem5::IGbE::DescCache< igbreg::RxDesc >::igbe, gem5::igbreg::Regs::rdba, and gem5::IGbE::regs.
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::RxDesc >.
Definition at line 309 of file i8254xGBe.hh.
References gem5::IGbE::DescCache< igbreg::RxDesc >::igbe, gem5::igbreg::Regs::rdh, and gem5::IGbE::regs.
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::RxDesc >.
Definition at line 310 of file i8254xGBe.hh.
References gem5::IGbE::DescCache< igbreg::RxDesc >::igbe, gem5::igbreg::Regs::rdlen, and gem5::IGbE::regs.
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::RxDesc >.
Definition at line 311 of file i8254xGBe.hh.
References gem5::IGbE::DescCache< igbreg::RxDesc >::igbe, gem5::igbreg::Regs::rdt, and gem5::IGbE::regs.
|
overrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::RxDesc >.
Definition at line 1450 of file i8254xGBe.cc.
References gem5::Draining.
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::RxDesc >.
Definition at line 314 of file i8254xGBe.hh.
References gem5::Drainable::drainState(), gem5::IGbE::DescCache< igbreg::RxDesc >::fetchDescriptors(), gem5::IGbE::DescCache< igbreg::RxDesc >::igbe, gem5::Running, and gem5::IGbE::rxTick.
|
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().
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().
void gem5::IGbE::RxDescCache::pktComplete | ( | ) |
Called by event when dma to write packet is completed.
Definition at line 1288 of file i8254xGBe.cc.
References gem5::igbreg::RxDesc::adv_read, gem5::igbreg::RxDesc::adv_wb, gem5::networking::cksum(), gem5::igbreg::RxDesc::csum, gem5::curTick(), DPRINTF, gem5::ArmISA::err, gem5::igbreg::RxDesc::errors, gem5::igbreg::RxDesc::hdr, gem5::htole(), gem5::igbreg::RxDesc::id, gem5::MipsISA::ip6, gem5::igbreg::IT_RXT, gem5::igbreg::IT_SRPD, gem5::igbreg::RxDesc::legacy, gem5::igbreg::RxDesc::len, panic, gem5::igbreg::RxDesc::pkt, gem5::igbreg::RxDesc::pkt_type, gem5::igbreg::RxDesc::rss_hash, gem5::igbreg::RxDesc::rss_type, gem5::igbreg::RXDE_IPE, gem5::igbreg::RXDE_TCPE, gem5::igbreg::RXDEE_IPE, gem5::igbreg::RXDEE_TCPE, gem5::igbreg::RXDP_IPV4, gem5::igbreg::RXDP_IPV6, gem5::igbreg::RXDP_TCP, gem5::igbreg::RXDP_UDP, gem5::igbreg::RXDS_DD, gem5::igbreg::RXDS_EOP, gem5::igbreg::RXDS_IPCS, gem5::igbreg::RXDS_TCPCS, gem5::igbreg::RXDS_UDPCS, gem5::igbreg::RXDT_ADV_ONEBUF, gem5::igbreg::RXDT_ADV_SPLIT_A, gem5::igbreg::RXDT_LEGACY, gem5::ArmISA::status, gem5::igbreg::RxDesc::status, gem5::igbreg::RxDesc::vlan, and gem5::igbreg::RxDesc::vlan_tag.
Referenced by RxDescCache().
void gem5::IGbE::RxDescCache::pktSplitDone | ( | ) |
Definition at line 1165 of file i8254xGBe.cc.
References DPRINTF.
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Reimplemented from gem5::IGbE::DescCache< igbreg::RxDesc >.
Definition at line 1478 of file i8254xGBe.cc.
References gem5::IGbE::DescCache< T >::serialize(), and SERIALIZE_SCALAR.
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Reimplemented from gem5::IGbE::DescCache< igbreg::RxDesc >.
Definition at line 1487 of file i8254xGBe.cc.
References gem5::IGbE::DescCache< T >::unserialize(), and UNSERIALIZE_SCALAR.
|
inlineoverrideprotectedvirtual |
Implements gem5::IGbE::DescCache< igbreg::RxDesc >.
Definition at line 312 of file i8254xGBe.hh.
References gem5::IGbE::DescCache< igbreg::RxDesc >::igbe, gem5::igbreg::Regs::rdh, and gem5::IGbE::regs.
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.
packet | ethernet packet to write |
pkt_offset | bytes already copied from the packet to memory |
Definition at line 1180 of file i8254xGBe.cc.
References gem5::igbreg::RxDesc::adv_read, gem5::igbreg::RxDesc::adv_wb, gem5::igbreg::RxDesc::buf, DPRINTF, gem5::igbreg::RxDesc::hdr, gem5::igbreg::RxDesc::header_len, gem5::networking::hsplit(), gem5::htole(), gem5::igbreg::RxDesc::legacy, panic, gem5::PciDevice::pciToDma(), gem5::igbreg::RxDesc::pkt, gem5::igbreg::RxDesc::pkt_len, gem5::igbreg::RXDT_ADV_ONEBUF, gem5::igbreg::RXDT_ADV_SPLIT_A, gem5::igbreg::RXDT_LEGACY, and gem5::igbreg::RxDesc::sph.
Referenced by gem5::IGbE::rxStateMachine().
|
protected |
Bytes of packet that have been copied, so we know when to set EOP.
Definition at line 326 of file i8254xGBe.hh.
EventFunctionWrapper gem5::IGbE::RxDescCache::pktDataEvent |
Definition at line 355 of file i8254xGBe.hh.
|
protected |
Definition at line 319 of file i8254xGBe.hh.
EventFunctionWrapper gem5::IGbE::RxDescCache::pktEvent |
Definition at line 349 of file i8254xGBe.hh.
EventFunctionWrapper gem5::IGbE::RxDescCache::pktHdrEvent |
Definition at line 354 of file i8254xGBe.hh.
|
protected |
Variable to head with header/data completion events.
Definition at line 322 of file i8254xGBe.hh.