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