gem5  v19.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 ()
 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
 

Detailed Description

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

Definition at line 214 of file i8254xGBe.hh.

Member Typedef Documentation

◆ CacheType

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

Definition at line 226 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 825 of file i8254xGBe.cc.

◆ ~DescCache()

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

Definition at line 838 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 223 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 847 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 305 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 321 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 318 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 1014 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 940 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 992 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 331 of file i8254xGBe.hh.

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

◆ name()

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

Definition at line 272 of file i8254xGBe.hh.

◆ pciToDma()

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

Shortcut for DMA address translation.

Definition at line 262 of file i8254xGBe.hh.

◆ reset()

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

Definition at line 1109 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 1126 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 1161 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 1058 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 911 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 237 of file i8254xGBe.hh.

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

◆ annDescQ

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

Definition at line 266 of file i8254xGBe.hh.

◆ annSmFetch

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

Annotate sm.

Definition at line 266 of file i8254xGBe.hh.

◆ annSmWb

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

Definition at line 266 of file i8254xGBe.hh.

◆ annUnusedCacheQ

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

Definition at line 266 of file i8254xGBe.hh.

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

◆ annUnusedDescQ

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

Definition at line 266 of file i8254xGBe.hh.

◆ annUsedCacheQ

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

Definition at line 266 of file i8254xGBe.hh.

◆ annUsedDescQ

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

Definition at line 266 of file i8254xGBe.hh.

◆ cachePnt

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

Definition at line 240 of file i8254xGBe.hh.

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

◆ curFetching

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

Definition at line 246 of file i8254xGBe.hh.

◆ fetchBuf

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

Definition at line 230 of file i8254xGBe.hh.

◆ fetchDelayEvent

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

Definition at line 289 of file i8254xGBe.hh.

◆ fetchEvent

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

Definition at line 294 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 253 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 259 of file i8254xGBe.hh.

◆ size

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

Definition at line 243 of file i8254xGBe.hh.

◆ unusedCache

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

Definition at line 228 of file i8254xGBe.hh.

◆ usedCache

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

Definition at line 227 of file i8254xGBe.hh.

◆ wbAlignment

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

Definition at line 256 of file i8254xGBe.hh.

◆ wbBuf

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

Definition at line 231 of file i8254xGBe.hh.

◆ wbDelayEvent

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

Definition at line 282 of file i8254xGBe.hh.

◆ wbEvent

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

Definition at line 299 of file i8254xGBe.hh.

◆ wbOut

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

Definition at line 249 of file i8254xGBe.hh.


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

Generated on Fri Feb 28 2020 16:27:12 for gem5 by doxygen 1.8.13