gem5  v20.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
IGbE::DescCache< T > Class Template Referenceabstract
Inheritance diagram for IGbE::DescCache< T >:
Serializable

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
 
EventFunctionWrapper wbDelayEvent
 
EventFunctionWrapper fetchDelayEvent
 
EventFunctionWrapper fetchEvent
 
EventFunctionWrapper 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
 
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)
 

Detailed Description

template<class T>
class IGbE::DescCache< T >

Definition at line 212 of file i8254xGBe.hh.

Member Typedef Documentation

◆ CacheType

template<class T>
typedef std::deque<T *> IGbE::DescCache< T >::CacheType
protected

Definition at line 224 of file i8254xGBe.hh.

Constructor & Destructor Documentation

◆ DescCache()

template<class T >
IGbE::DescCache< T >::DescCache ( IGbE i,
const std::string  n,
int  s 
)

Definition at line 823 of file i8254xGBe.cc.

◆ ~DescCache()

template<class T >
IGbE::DescCache< T >::~DescCache ( )
virtual

Definition at line 836 of file i8254xGBe.cc.

Member Function Documentation

◆ actionAfterWb()

template<class T>
virtual void IGbE::DescCache< T >::actionAfterWb ( )
inlineprotectedvirtual

Reimplemented in IGbE::TxDescCache.

Definition at line 221 of file i8254xGBe.hh.

Referenced by IGbE::TxDescCache::updateHead().

◆ areaChanged()

template<class T >
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::DescCache< iGbReg::RxDesc >::name(), and IGbE::write().

◆ descBase()

template<class T>
virtual Addr IGbE::DescCache< T >::descBase ( ) const
protectedpure virtual

Implemented in IGbE::TxDescCache, and IGbE::RxDescCache.

◆ descHead()

template<class T>
virtual long IGbE::DescCache< T >::descHead ( ) const
protectedpure virtual

Implemented in IGbE::TxDescCache, and IGbE::RxDescCache.

◆ descLeft()

template<class T>
unsigned IGbE::DescCache< T >::descLeft ( ) const
inline

Definition at line 303 of file i8254xGBe.hh.

Referenced by IGbE::ethTxDone(), IGbE::rxStateMachine(), and IGbE::txStateMachine().

◆ descLen()

template<class T>
virtual long IGbE::DescCache< T >::descLen ( ) const
protectedpure virtual

◆ descTail()

template<class T>
virtual long IGbE::DescCache< T >::descTail ( ) const
protectedpure virtual

◆ descUnused()

template<class T>
unsigned IGbE::DescCache< T >::descUnused ( ) const
inline

Definition at line 319 of file i8254xGBe.hh.

Referenced by IGbE::rxStateMachine(), and IGbE::txStateMachine().

◆ descUsed()

template<class T>
unsigned IGbE::DescCache< T >::descUsed ( ) const
inline

Definition at line 316 of file i8254xGBe.hh.

Referenced by IGbE::rxStateMachine().

◆ enableSm()

template<class T>
virtual void IGbE::DescCache< T >::enableSm ( )
protectedpure virtual

◆ fetchAfterWb()

template<class T>
virtual void IGbE::DescCache< T >::fetchAfterWb ( )
protectedpure virtual

◆ fetchComplete()

template<class T >
void IGbE::DescCache< T >::fetchComplete ( )

Called by event when dma to read descriptors is completed.

Definition at line 1012 of file i8254xGBe.cc.

◆ fetchDescriptors()

template<class T >
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.

Referenced by IGbE::RxDescCache::fetchAfterWb(), IGbE::TxDescCache::fetchAfterWb(), IGbE::rxStateMachine(), IGbE::txStateMachine(), and IGbE::write().

◆ fetchDescriptors1()

template<class T >
void IGbE::DescCache< T >::fetchDescriptors1 ( )

Definition at line 990 of file i8254xGBe.cc.

◆ hasOutstandingEvents()

template<class T>
virtual bool IGbE::DescCache< T >::hasOutstandingEvents ( )
inlinevirtual

Reimplemented in IGbE::TxDescCache, and IGbE::RxDescCache.

Definition at line 329 of file i8254xGBe.hh.

Referenced by IGbE::TxDescCache::completionWriteback().

◆ name()

template<class T>
std::string IGbE::DescCache< T >::name ( )
inline

Definition at line 270 of file i8254xGBe.hh.

◆ pciToDma()

template<class T>
Addr IGbE::DescCache< T >::pciToDma ( Addr  a)
inlineprotected

Shortcut for DMA address translation.

Definition at line 260 of file i8254xGBe.hh.

◆ reset()

template<class T >
void IGbE::DescCache< T >::reset ( )

Definition at line 1107 of file i8254xGBe.cc.

Referenced by IGbE::DescCache< iGbReg::RxDesc >::descUnused(), and IGbE::write().

◆ serialize()

template<class T >
void IGbE::DescCache< T >::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 1124 of file i8254xGBe.cc.

Referenced by IGbE::DescCache< iGbReg::RxDesc >::descUnused(), IGbE::RxDescCache::serialize(), and IGbE::TxDescCache::serialize().

◆ unserialize()

template<class T >
void IGbE::DescCache< T >::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 1159 of file i8254xGBe.cc.

Referenced by IGbE::DescCache< iGbReg::RxDesc >::descUnused(), IGbE::RxDescCache::unserialize(), and IGbE::TxDescCache::unserialize().

◆ updateHead()

template<class T>
virtual void IGbE::DescCache< T >::updateHead ( long  h)
protectedpure virtual

Implemented in IGbE::TxDescCache, and IGbE::RxDescCache.

◆ wbComplete()

template<class T >
void IGbE::DescCache< T >::wbComplete ( )

Called by event when dma to writeback descriptors is completed.

Definition at line 1056 of file i8254xGBe.cc.

◆ writeback()

template<class T >
void IGbE::DescCache< T >::writeback ( Addr  aMask)

◆ writeback1()

template<class T >
void IGbE::DescCache< T >::writeback1 ( )

Definition at line 909 of file i8254xGBe.cc.

Referenced by IGbE::DescCache< iGbReg::RxDesc >::name().

Member Data Documentation

◆ _name

template<class T>
std::string IGbE::DescCache< T >::_name
protected

Definition at line 235 of file i8254xGBe.hh.

Referenced by IGbE::DescCache< iGbReg::RxDesc >::name().

◆ annDescQ

template<class T>
std::string IGbE::DescCache< T >::annDescQ

Definition at line 264 of file i8254xGBe.hh.

◆ annSmFetch

template<class T>
std::string IGbE::DescCache< T >::annSmFetch

Annotate sm.

Definition at line 264 of file i8254xGBe.hh.

◆ annSmWb

template<class T>
std::string IGbE::DescCache< T >::annSmWb

Definition at line 264 of file i8254xGBe.hh.

◆ annUnusedCacheQ

template<class T>
std::string IGbE::DescCache< T >::annUnusedCacheQ

Definition at line 264 of file i8254xGBe.hh.

Referenced by IGbE::rxStateMachine(), and IGbE::txStateMachine().

◆ annUnusedDescQ

template<class T>
std::string IGbE::DescCache< T >::annUnusedDescQ

Definition at line 264 of file i8254xGBe.hh.

◆ annUsedCacheQ

template<class T>
std::string IGbE::DescCache< T >::annUsedCacheQ

Definition at line 264 of file i8254xGBe.hh.

◆ annUsedDescQ

template<class T>
std::string IGbE::DescCache< T >::annUsedDescQ

Definition at line 264 of file i8254xGBe.hh.

◆ cachePnt

template<class T>
int IGbE::DescCache< T >::cachePnt
protected

Definition at line 238 of file i8254xGBe.hh.

Referenced by IGbE::DescCache< iGbReg::RxDesc >::descLeft().

◆ curFetching

template<class T>
int IGbE::DescCache< T >::curFetching
protected

Definition at line 244 of file i8254xGBe.hh.

◆ fetchBuf

template<class T>
T* IGbE::DescCache< T >::fetchBuf
protected

Definition at line 228 of file i8254xGBe.hh.

◆ fetchDelayEvent

template<class T>
EventFunctionWrapper IGbE::DescCache< T >::fetchDelayEvent

Definition at line 287 of file i8254xGBe.hh.

◆ fetchEvent

template<class T>
EventFunctionWrapper IGbE::DescCache< T >::fetchEvent

Definition at line 292 of file i8254xGBe.hh.

◆ igbe

template<class T>
IGbE* IGbE::DescCache< T >::igbe
protected

◆ moreToWb

template<class T>
bool IGbE::DescCache< T >::moreToWb
protected

Definition at line 251 of file i8254xGBe.hh.

◆ pktPtr

template<class T>
EthPacketPtr IGbE::DescCache< T >::pktPtr
protected

The packet that is currently being dmad to memory if any.

Definition at line 257 of file i8254xGBe.hh.

◆ size

template<class T>
int IGbE::DescCache< T >::size
protected

Definition at line 241 of file i8254xGBe.hh.

◆ unusedCache

template<class T>
CacheType IGbE::DescCache< T >::unusedCache
protected

Definition at line 226 of file i8254xGBe.hh.

◆ usedCache

template<class T>
CacheType IGbE::DescCache< T >::usedCache
protected

Definition at line 225 of file i8254xGBe.hh.

◆ wbAlignment

template<class T>
Addr IGbE::DescCache< T >::wbAlignment
protected

Definition at line 254 of file i8254xGBe.hh.

◆ wbBuf

template<class T>
T* IGbE::DescCache< T >::wbBuf
protected

Definition at line 229 of file i8254xGBe.hh.

◆ wbDelayEvent

template<class T>
EventFunctionWrapper IGbE::DescCache< T >::wbDelayEvent

Definition at line 280 of file i8254xGBe.hh.

◆ wbEvent

template<class T>
EventFunctionWrapper IGbE::DescCache< T >::wbEvent

Definition at line 297 of file i8254xGBe.hh.

◆ wbOut

template<class T>
int IGbE::DescCache< T >::wbOut
protected

Definition at line 247 of file i8254xGBe.hh.


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

Generated on Thu May 28 2020 16:21:46 for gem5 by doxygen 1.8.13