gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
FSTranslatingPortProxy Class Reference

A TranslatingPortProxy in FS mode translates a virtual address to a physical address and then calls the read/write functions of the port. More...

#include <fs_translating_port_proxy.hh>

Inheritance diagram for FSTranslatingPortProxy:
PortProxy

Public Member Functions

 FSTranslatingPortProxy (ThreadContext *tc)
 
 FSTranslatingPortProxy (MasterPort &port, unsigned int cacheLineSize)
 
virtual ~FSTranslatingPortProxy ()
 
virtual void readBlob (Addr addr, uint8_t *p, int size) const
 Version of readblob that translates virt->phys and deals with page boundries. More...
 
virtual void writeBlob (Addr addr, const uint8_t *p, int size) const
 Version of writeBlob that translates virt->phys and deals with page boundries. More...
 
virtual void memsetBlob (Addr address, uint8_t v, int size) const
 Fill size bytes starting at addr with byte value val. More...
 
- Public Member Functions inherited from PortProxy
 PortProxy (MasterPort &port, unsigned int cacheLineSize)
 
virtual ~PortProxy ()
 
template<typename T >
read (Addr address) const
 Read sizeof(T) bytes from address and return as object T. More...
 
template<typename T >
void write (Addr address, T data) const
 Write object T to address. More...
 

Private Attributes

ThreadContext_tc
 

Detailed Description

A TranslatingPortProxy in FS mode translates a virtual address to a physical address and then calls the read/write functions of the port.

If a thread context is provided the address can alway be translated, If not it can only be translated if it is a simple address masking operation (such as alpha super page accesses).

Definition at line 73 of file fs_translating_port_proxy.hh.

Constructor & Destructor Documentation

FSTranslatingPortProxy::FSTranslatingPortProxy ( ThreadContext tc)

Definition at line 59 of file fs_translating_port_proxy.cc.

FSTranslatingPortProxy::FSTranslatingPortProxy ( MasterPort port,
unsigned int  cacheLineSize 
)

Definition at line 65 of file fs_translating_port_proxy.cc.

FSTranslatingPortProxy::~FSTranslatingPortProxy ( )
virtual

Definition at line 71 of file fs_translating_port_proxy.cc.

Member Function Documentation

void FSTranslatingPortProxy::memsetBlob ( Addr  address,
uint8_t  v,
int  size 
) const
virtual

Fill size bytes starting at addr with byte value val.

Reimplemented from PortProxy.

Definition at line 110 of file fs_translating_port_proxy.cc.

References _tc, ChunkGenerator::done(), PortProxy::memsetBlob(), AlphaISA::PageBytes, and AlphaISA::vtophys().

void FSTranslatingPortProxy::readBlob ( Addr  addr,
uint8_t *  p,
int  size 
) const
virtual

Version of readblob that translates virt->phys and deals with page boundries.

Reimplemented from PortProxy.

Definition at line 76 of file fs_translating_port_proxy.cc.

References _tc, ChunkGenerator::done(), AlphaISA::PageBytes, PortProxy::readBlob(), and AlphaISA::vtophys().

Referenced by CopyOut(), CopyStringOut(), BaseRemoteGDB::read(), and VPtr< T >::refresh().

void FSTranslatingPortProxy::writeBlob ( Addr  addr,
const uint8_t *  p,
int  size 
) const
virtual

Version of writeBlob that translates virt->phys and deals with page boundries.

Reimplemented from PortProxy.

Definition at line 93 of file fs_translating_port_proxy.cc.

References _tc, ChunkGenerator::done(), AlphaISA::PageBytes, AlphaISA::vtophys(), and PortProxy::writeBlob().

Referenced by CopyIn(), CopyStringIn(), AlphaSystem::initState(), LinuxAlphaSystem::initState(), and BaseRemoteGDB::write().

Member Data Documentation

ThreadContext* FSTranslatingPortProxy::_tc
private

Definition at line 76 of file fs_translating_port_proxy.hh.

Referenced by memsetBlob(), readBlob(), and writeBlob().


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

Generated on Fri Jun 9 2017 13:04:10 for gem5 by doxygen 1.8.6