51 #include "arch/vtophys.hh"
57 using namespace TheISA;
60 :
PortProxy(tc->getCpuPtr()->getDataPort(),
61 tc->getSystemPtr()->cacheLineSize()), _tc(tc)
66 unsigned int cacheLineSize)
67 :
PortProxy(port, cacheLineSize), _tc(NULL)
128 uint8_t *dst = (uint8_t *)dest;
135 uint8_t *src = (uint8_t *)source;
145 bool foundNull =
false;
146 while ((dst - start + 1) < maxlen && !foundNull) {
147 vp.
readBlob(vaddr++, (uint8_t*)dst, 1);
164 vp.
writeBlob(gen.addr(), (uint8_t*)src, gen.size());
A MasterPort is a specialisation of a BaseMasterPort, which implements the default protocol for the t...
void CopyStringIn(ThreadContext *tc, const char *src, Addr vaddr)
A TranslatingPortProxy in FS mode translates a virtual address to a physical address and then calls t...
virtual ~FSTranslatingPortProxy()
void CopyOut(ThreadContext *tc, void *dest, Addr src, size_t cplen)
ThreadContext is the external interface to all thread state for anything outside of the CPU...
virtual void readBlob(Addr addr, uint8_t *p, int size) const
Version of readblob that translates virt->phys and deals with page boundries.
virtual void writeBlob(Addr addr, const uint8_t *p, int size) const
Version of writeBlob that translates virt->phys and deals with page boundries.
void CopyStringOut(ThreadContext *tc, char *dst, Addr vaddr, size_t maxlen)
This class takes an arbitrary memory region (address/length pair) and generates a series of appropria...
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
FSTranslatingPortProxy(ThreadContext *tc)
virtual void readBlob(Addr addr, uint8_t *p, int size) const
Read size bytes memory at address and store in p.
This object is a proxy for a structural port, to be used for debug accesses.
virtual void memsetBlob(Addr address, uint8_t v, int size) const
Fill size bytes starting at addr with byte value val.
virtual FSTranslatingPortProxy & getVirtProxy()=0
bool done() const
Are we done? That is, did the last call to next() advance past the end of the region?
void CopyIn(ThreadContext *tc, Addr dest, const void *source, size_t cplen)
virtual void writeBlob(Addr addr, const uint8_t *p, int size) const
Write size bytes from p to address.
TranslatingPortProxy Object Declaration for FS.
virtual void memsetBlob(Addr addr, uint8_t v, int size) const
Fill size bytes starting at addr with byte value val.
Declaration and inline definition of ChunkGenerator object.