gem5
|
Public Member Functions | |
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... | |
virtual bool | hasOutstandingEvents () |
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 | |
std::string | annSmFetch |
Annotate sm. More... | |
std::string | annSmWb |
std::string | annUnusedDescQ |
std::string | annUsedCacheQ |
std::string | annUsedDescQ |
std::string | annUnusedCacheQ |
std::string | annDescQ |
EventWrapper< DescCache,&DescCache::writeback1 > | wbDelayEvent |
EventWrapper< DescCache,&DescCache::fetchDescriptors1 > | fetchDelayEvent |
EventWrapper< DescCache,&DescCache::fetchComplete > | fetchEvent |
EventWrapper< DescCache,&DescCache::wbComplete > | wbEvent |
Protected Types | |
typedef std::deque< T * > | CacheType |
Protected Member Functions | |
virtual Addr | descBase () const =0 |
virtual long | descHead () const =0 |
virtual long | descTail () const =0 |
virtual long | descLen () const =0 |
virtual void | updateHead (long h)=0 |
virtual void | enableSm ()=0 |
virtual void | actionAfterWb () |
virtual void | fetchAfterWb ()=0 |
Addr | pciToDma (Addr a) |
Shortcut for DMA address translation. More... | |
Protected Attributes | |
CacheType | usedCache |
CacheType | unusedCache |
T * | fetchBuf |
T * | 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 () |
Get the fully-qualified name of the active section. More... | |
static void | serializeAll (const std::string &cpt_dir) |
static void | unserializeGlobals (CheckpointIn &cp) |
Static Public Attributes inherited from Serializable | |
static int | ckptCount = 0 |
static int | ckptMaxCount = 0 |
static int | ckptPrevCount = -1 |
Definition at line 218 of file i8254xGBe.hh.
|
protected |
Definition at line 230 of file i8254xGBe.hh.
IGbE::DescCache< T >::DescCache | ( | IGbE * | i, |
const std::string | n, | ||
int | s | ||
) |
Definition at line 825 of file i8254xGBe.cc.
References IGbE::DescCache< T >::fetchBuf, IGbE::DescCache< T >::size, and IGbE::DescCache< T >::wbBuf.
|
virtual |
Definition at line 836 of file i8254xGBe.cc.
References reset.
|
inlineprotectedvirtual |
Reimplemented in IGbE::TxDescCache.
Definition at line 227 of file i8254xGBe.hh.
void IGbE::DescCache< T >::areaChanged | ( | ) |
If the address/len/head change when we've got descriptors that are dirty that is very bad.
This function checks that we don't and if we do panics.
Definition at line 845 of file i8254xGBe.cc.
Referenced by IGbE::write().
|
protectedpure virtual |
Implemented in IGbE::TxDescCache, and IGbE::RxDescCache.
|
protectedpure virtual |
Implemented in IGbE::TxDescCache, and IGbE::RxDescCache.
|
inline |
Definition at line 309 of file i8254xGBe.hh.
Referenced by IGbE::ethTxDone(), IGbE::rxStateMachine(), and IGbE::txStateMachine().
|
protectedpure virtual |
Implemented in IGbE::TxDescCache, and IGbE::RxDescCache.
Referenced by IGbE::DescCache< iGbReg::RxDesc >::descLeft().
|
protectedpure virtual |
Implemented in IGbE::TxDescCache, and IGbE::RxDescCache.
Referenced by IGbE::DescCache< iGbReg::RxDesc >::descLeft().
|
inline |
Definition at line 325 of file i8254xGBe.hh.
Referenced by IGbE::rxStateMachine(), and IGbE::txStateMachine().
|
inline |
Definition at line 322 of file i8254xGBe.hh.
Referenced by IGbE::rxStateMachine().
|
protectedpure virtual |
Implemented in IGbE::TxDescCache, and IGbE::RxDescCache.
|
protectedpure virtual |
Implemented in IGbE::TxDescCache, and IGbE::RxDescCache.
void IGbE::DescCache< T >::fetchComplete | ( | ) |
Called by event when dma to read descriptors is completed.
Definition at line 1012 of file i8254xGBe.cc.
References DPRINTF, CPA::FL_WAIT, X86ISA::size(), and X86ISA::x.
void IGbE::DescCache< T >::fetchDescriptors | ( | ) |
Fetch a chunk of descriptors into the descriptor cache.
Calls fetchComplete when the memory system returns the data
Definition at line 938 of file i8254xGBe.cc.
References curTick(), DPRINTF, and X86ISA::size().
Referenced by IGbE::rxStateMachine(), IGbE::txStateMachine(), and IGbE::write().
void IGbE::DescCache< T >::fetchDescriptors1 | ( | ) |
Definition at line 990 of file i8254xGBe.cc.
References curTick(), DPRINTF, PciDevice::pciToDma(), and Running.
|
inlinevirtual |
Reimplemented in IGbE::TxDescCache, and IGbE::RxDescCache.
Definition at line 335 of file i8254xGBe.hh.
|
inline |
Definition at line 276 of file i8254xGBe.hh.
|
inlineprotected |
Shortcut for DMA address translation.
Definition at line 266 of file i8254xGBe.hh.
void IGbE::DescCache< T >::reset | ( | ) |
Definition at line 1107 of file i8254xGBe.cc.
References DPRINTF, and X86ISA::x.
Referenced by IGbE::write().
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Implements Serializable.
Definition at line 1124 of file i8254xGBe.cc.
References arrayParamOut(), csprintf(), SERIALIZE_SCALAR, and X86ISA::x.
Referenced by IGbE::RxDescCache::serialize(), and IGbE::TxDescCache::serialize().
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Implements Serializable.
Definition at line 1159 of file i8254xGBe.cc.
References arrayParamIn(), csprintf(), UNSERIALIZE_SCALAR, and X86ISA::x.
Referenced by IGbE::RxDescCache::unserialize(), and IGbE::TxDescCache::unserialize().
|
protectedpure virtual |
Implemented in IGbE::TxDescCache, and IGbE::RxDescCache.
void IGbE::DescCache< T >::wbComplete | ( | ) |
Called by event when dma to writeback descriptors is completed.
Definition at line 1056 of file i8254xGBe.cc.
References DPRINTF, CPA::FL_WAIT, ArmISA::writeback, and X86ISA::x.
void IGbE::DescCache< T >::writeback | ( | Addr | aMask | ) |
Definition at line 855 of file i8254xGBe.cc.
References curTick(), DPRINTF, and CPA::FL_WAIT.
Referenced by IGbE::radvProcess(), IGbE::rdtrProcess(), IGbE::read(), IGbE::rxStateMachine(), IGbE::tadvProcess(), IGbE::tidvProcess(), and IGbE::txStateMachine().
void IGbE::DescCache< T >::writeback1 | ( | ) |
Definition at line 909 of file i8254xGBe.cc.
References curTick(), DPRINTF, PciDevice::pciToDma(), Running, and X86ISA::x.
|
protected |
Definition at line 241 of file i8254xGBe.hh.
Referenced by IGbE::DescCache< iGbReg::RxDesc >::name().
std::string IGbE::DescCache< T >::annDescQ |
Definition at line 270 of file i8254xGBe.hh.
std::string IGbE::DescCache< T >::annSmFetch |
Annotate sm.
Definition at line 270 of file i8254xGBe.hh.
std::string IGbE::DescCache< T >::annSmWb |
Definition at line 270 of file i8254xGBe.hh.
std::string IGbE::DescCache< T >::annUnusedCacheQ |
Definition at line 270 of file i8254xGBe.hh.
Referenced by IGbE::rxStateMachine(), and IGbE::txStateMachine().
std::string IGbE::DescCache< T >::annUnusedDescQ |
Definition at line 270 of file i8254xGBe.hh.
std::string IGbE::DescCache< T >::annUsedCacheQ |
Definition at line 270 of file i8254xGBe.hh.
std::string IGbE::DescCache< T >::annUsedDescQ |
Definition at line 270 of file i8254xGBe.hh.
|
protected |
Definition at line 244 of file i8254xGBe.hh.
Referenced by IGbE::DescCache< iGbReg::RxDesc >::descLeft().
|
protected |
Definition at line 250 of file i8254xGBe.hh.
|
protected |
Definition at line 234 of file i8254xGBe.hh.
Referenced by IGbE::DescCache< T >::DescCache().
EventWrapper<DescCache, &DescCache::fetchDescriptors1> IGbE::DescCache< T >::fetchDelayEvent |
Definition at line 293 of file i8254xGBe.hh.
EventWrapper<DescCache, &DescCache::fetchComplete> IGbE::DescCache< T >::fetchEvent |
Definition at line 298 of file i8254xGBe.hh.
Referenced by IGbE::DescCache< iGbReg::RxDesc >::hasOutstandingEvents().
|
protected |
Definition at line 238 of file i8254xGBe.hh.
Referenced by IGbE::DescCache< iGbReg::RxDesc >::pciToDma().
|
protected |
Definition at line 257 of file i8254xGBe.hh.
|
protected |
The packet that is currently being dmad to memory if any.
Definition at line 263 of file i8254xGBe.hh.
|
protected |
Definition at line 247 of file i8254xGBe.hh.
Referenced by IGbE::DescCache< T >::DescCache().
|
protected |
Definition at line 232 of file i8254xGBe.hh.
Referenced by IGbE::DescCache< iGbReg::RxDesc >::descLeft(), and IGbE::DescCache< iGbReg::RxDesc >::descUnused().
|
protected |
Definition at line 231 of file i8254xGBe.hh.
Referenced by IGbE::DescCache< iGbReg::RxDesc >::descUsed().
|
protected |
Definition at line 260 of file i8254xGBe.hh.
|
protected |
Definition at line 235 of file i8254xGBe.hh.
Referenced by IGbE::DescCache< T >::DescCache().
EventWrapper<DescCache, &DescCache::writeback1> IGbE::DescCache< T >::wbDelayEvent |
Definition at line 286 of file i8254xGBe.hh.
EventWrapper<DescCache, &DescCache::wbComplete> IGbE::DescCache< T >::wbEvent |
Definition at line 303 of file i8254xGBe.hh.
Referenced by IGbE::DescCache< iGbReg::RxDesc >::hasOutstandingEvents().
|
protected |
Definition at line 253 of file i8254xGBe.hh.