gem5
|
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>
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 > | |
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 |
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.
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.
|
virtual |
Definition at line 71 of file fs_translating_port_proxy.cc.
|
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().
|
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().
|
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().
|
private |
Definition at line 76 of file fs_translating_port_proxy.hh.
Referenced by memsetBlob(), readBlob(), and writeBlob().