|
gem5
v20.1.0.5
|
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::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. 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 |
Definition at line 298 of file i8254xGBe.hh.
| IGbE::RxDescCache::RxDescCache | ( | IGbE * | i, |
| std::string | n, | ||
| int | s | ||
| ) |
Definition at line 1147 of file i8254xGBe.cc.
References pktComplete().
|
inlineoverrideprotected |
Definition at line 301 of file i8254xGBe.hh.
References IGbE::DescCache< iGbReg::RxDesc >::igbe, iGbReg::Regs::rdba, and IGbE::regs.
|
inlineoverrideprotected |
Definition at line 302 of file i8254xGBe.hh.
References IGbE::DescCache< iGbReg::RxDesc >::igbe, iGbReg::Regs::rdh, and IGbE::regs.
|
inlineoverrideprotected |
Definition at line 303 of file i8254xGBe.hh.
References IGbE::DescCache< iGbReg::RxDesc >::igbe, iGbReg::Regs::rdlen, and IGbE::regs.
|
inlineoverrideprotected |
Definition at line 304 of file i8254xGBe.hh.
References IGbE::DescCache< iGbReg::RxDesc >::igbe, iGbReg::Regs::rdt, and IGbE::regs.
|
overrideprotectedvirtual |
Implements IGbE::DescCache< iGbReg::RxDesc >.
Definition at line 1449 of file i8254xGBe.cc.
References Draining.
|
inlineoverrideprotectedvirtual |
Implements IGbE::DescCache< iGbReg::RxDesc >.
Definition at line 307 of file i8254xGBe.hh.
References Drainable::drainState(), IGbE::DescCache< iGbReg::RxDesc >::fetchDescriptors(), IGbE::DescCache< iGbReg::RxDesc >::igbe, Running, and IGbE::rxTick.
|
overridevirtual |
Reimplemented from IGbE::DescCache< iGbReg::RxDesc >.
Definition at line 1468 of file i8254xGBe.cc.
Referenced by IGbE::checkDrain(), and IGbE::drain().
| 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().
| void IGbE::RxDescCache::pktComplete | ( | ) |
Called by event when dma to write packet is completed.
Definition at line 1287 of file i8254xGBe.cc.
References iGbReg::RxDesc::adv_read, iGbReg::RxDesc::adv_wb, Net::cksum(), curTick(), DPRINTF, ArmISA::err, htole(), iGbReg::TxdOp::ip(), MipsISA::ip6, iGbReg::IT_RXT, iGbReg::IT_SRPD, iGbReg::RxDesc::legacy, length, panic, iGbReg::RXDE_IPE, iGbReg::RXDE_TCPE, iGbReg::RXDEE_IPE, iGbReg::RXDEE_TCPE, iGbReg::RXDP_IPV4, iGbReg::RXDP_IPV6, iGbReg::RXDP_TCP, iGbReg::RXDP_UDP, iGbReg::RXDS_DD, iGbReg::RXDS_EOP, iGbReg::RXDS_IPCS, iGbReg::RXDS_TCPCS, iGbReg::RXDS_UDPCS, iGbReg::RXDT_ADV_ONEBUF, iGbReg::RXDT_ADV_SPLIT_A, iGbReg::RXDT_LEGACY, ArmISA::status, and iGbReg::TxdOp::tcp().
Referenced by RxDescCache().
| void IGbE::RxDescCache::pktSplitDone | ( | ) |
Definition at line 1164 of file i8254xGBe.cc.
References DPRINTF.
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
| cp | Checkpoint state |
Implements Serializable.
Definition at line 1477 of file i8254xGBe.cc.
References IGbE::DescCache< T >::serialize(), and SERIALIZE_SCALAR.
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
| cp | Checkpoint state |
Implements Serializable.
Definition at line 1486 of file i8254xGBe.cc.
References IGbE::DescCache< T >::unserialize(), and UNSERIALIZE_SCALAR.
|
inlineoverrideprotectedvirtual |
Implements IGbE::DescCache< iGbReg::RxDesc >.
Definition at line 305 of file i8254xGBe.hh.
References IGbE::DescCache< iGbReg::RxDesc >::igbe, iGbReg::Regs::rdh, and IGbE::regs.
| 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.
| packet | ethernet packet to write |
| pkt_offset | bytes already copied from the packet to memory |
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().
|
protected |
Bytes of packet that have been copied, so we know when to set EOP.
Definition at line 319 of file i8254xGBe.hh.
| EventFunctionWrapper IGbE::RxDescCache::pktDataEvent |
Definition at line 348 of file i8254xGBe.hh.
|
protected |
Definition at line 312 of file i8254xGBe.hh.
| EventFunctionWrapper IGbE::RxDescCache::pktEvent |
Definition at line 342 of file i8254xGBe.hh.
| EventFunctionWrapper IGbE::RxDescCache::pktHdrEvent |
Definition at line 347 of file i8254xGBe.hh.
|
protected |
Variable to head with header/data completion events.
Definition at line 315 of file i8254xGBe.hh.