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

This object is a proxy for a structural port, to be used for debug accesses. More...

#include <port_proxy.hh>

Inheritance diagram for PortProxy:
FSTranslatingPortProxy SETranslatingPortProxy

Public Member Functions

 PortProxy (MasterPort &port, unsigned int cacheLineSize)
 
virtual ~PortProxy ()
 
virtual void readBlob (Addr addr, uint8_t *p, int size) const
 Read size bytes memory at address and store in p. More...
 
virtual void writeBlob (Addr addr, const uint8_t *p, int size) const
 Write size bytes from p to address. More...
 
virtual void memsetBlob (Addr addr, uint8_t v, int size) const
 Fill size bytes starting at addr with byte value val. More...
 
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

MasterPort_port
 The actual physical port used by this proxy. More...
 
const unsigned int _cacheLineSize
 Granularity of any transactions issued through this proxy. More...
 

Detailed Description

This object is a proxy for a structural port, to be used for debug accesses.

This proxy object is used when non structural entities (e.g. thread contexts, object file loaders) need access to the memory system. It calls the corresponding functions on the underlying structural port, and provides templatized convenience access functions.

The addresses are interpreted as physical addresses.

See Also
SETranslatingProxy
FSTranslatingProxy

Definition at line 84 of file port_proxy.hh.

Constructor & Destructor Documentation

PortProxy::PortProxy ( MasterPort port,
unsigned int  cacheLineSize 
)
inline

Definition at line 95 of file port_proxy.hh.

virtual PortProxy::~PortProxy ( )
inlinevirtual

Definition at line 97 of file port_proxy.hh.

Member Function Documentation

void PortProxy::memsetBlob ( Addr  addr,
uint8_t  v,
int  size 
) const
virtual
template<typename T >
T PortProxy::read ( Addr  address) const
void PortProxy::readBlob ( Addr  addr,
uint8_t *  p,
int  size 
) const
virtual
template<typename T >
void PortProxy::write ( Addr  address,
data 
) const
void PortProxy::writeBlob ( Addr  addr,
const uint8_t *  p,
int  size 
) const
virtual

Member Data Documentation

const unsigned int PortProxy::_cacheLineSize
private

Granularity of any transactions issued through this proxy.

Definition at line 92 of file port_proxy.hh.

Referenced by readBlob(), and writeBlob().

MasterPort& PortProxy::_port
private

The actual physical port used by this proxy.

Definition at line 89 of file port_proxy.hh.

Referenced by readBlob(), and writeBlob().


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

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