gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::SETranslatingPortProxy Class Reference

#include <se_translating_port_proxy.hh>

Inheritance diagram for gem5::SETranslatingPortProxy:
gem5::TranslatingPortProxy gem5::PortProxy gem5::FunctionalRequestProtocol

Public Types

enum  AllocType { Always , Never , NextPage }
 
- Public Types inherited from gem5::PortProxy
typedef std::function< void(PacketPtr pkt)> SendFunctionalFunc
 

Public Member Functions

 SETranslatingPortProxy (ThreadContext *tc, AllocType alloc=NextPage, Request::Flags _flags=0)
 
- Public Member Functions inherited from gem5::TranslatingPortProxy
 TranslatingPortProxy (ThreadContext *tc, Request::Flags _flags=0)
 
bool tryReadBlob (Addr addr, void *p, uint64_t size) const override
 Version of tryReadblob that translates virt->phys and deals with page boundries.
 
bool tryWriteBlob (Addr addr, const void *p, uint64_t size) const override
 Version of tryWriteBlob that translates virt->phys and deals with page boundries.
 
bool tryMemsetBlob (Addr address, uint8_t v, uint64_t size) const override
 Fill size bytes starting at addr with byte value val.
 
- Public Member Functions inherited from gem5::PortProxy
 PortProxy (SendFunctionalFunc func, Addr cache_line_size)
 
 PortProxy (ThreadContext *tc, Addr cache_line_size)
 
 PortProxy (const RequestPort &port, Addr cache_line_size)
 
virtual ~PortProxy ()
 
void readBlobPhys (Addr addr, Request::Flags flags, void *p, uint64_t size) const
 Fixed functionality for use in base classes.
 
void writeBlobPhys (Addr addr, Request::Flags flags, const void *p, uint64_t size) const
 Write size bytes from p to physical address.
 
void memsetBlobPhys (Addr addr, Request::Flags flags, uint8_t v, uint64_t size) const
 Fill size bytes starting at physical addr with byte value val.
 
void readBlob (Addr addr, void *p, uint64_t size) const
 Higher level interfaces based on the above.
 
void writeBlob (Addr addr, const void *p, uint64_t size) const
 Same as tryWriteBlob, but insists on success.
 
void memsetBlob (Addr addr, uint8_t v, uint64_t size) const
 Same as tryMemsetBlob, but insists on success.
 
template<typename T >
read (Addr address) const
 Read sizeof(T) bytes from address and return as object T.
 
template<typename T >
void write (Addr address, const T &data) const
 Write object T to address.
 
template<typename T >
read (Addr address, ByteOrder guest_byte_order) const
 Read sizeof(T) bytes from address and return as object T.
 
template<typename T >
void write (Addr address, T data, ByteOrder guest_byte_order) const
 Write object T to address.
 
bool tryWriteString (Addr addr, const char *str) const
 Write the string str into guest memory at address addr.
 
void writeString (Addr addr, const char *str) const
 Same as tryWriteString, but insists on success.
 
bool tryReadString (std::string &str, Addr addr) const
 Reads the string at guest address addr into the std::string str.
 
void readString (std::string &str, Addr addr) const
 Same as tryReadString, but insists on success.
 
bool tryReadString (char *str, Addr addr, size_t maxlen) const
 Reads the string at guest address addr into the char * str, reading up to maxlen characters.
 
void readString (char *str, Addr addr, size_t maxlen) const
 Same as tryReadString, but insists on success.
 

Protected Member Functions

bool fixupRange (const TranslationGen::Range &range, BaseMMU::Mode mode) const override
 
- Protected Member Functions inherited from gem5::TranslatingPortProxy
bool tryOnBlob (BaseMMU::Mode mode, TranslationGenPtr gen, std::function< void(const TranslationGen::Range &)> func) const
 

Private Attributes

AllocType allocating
 

Additional Inherited Members

- Protected Attributes inherited from gem5::TranslatingPortProxy
ThreadContext_tc
 
Request::Flags flags
 

Detailed Description

Definition at line 49 of file se_translating_port_proxy.hh.

Member Enumeration Documentation

◆ AllocType

Enumerator
Always 
Never 
NextPage 

Definition at line 53 of file se_translating_port_proxy.hh.

Constructor & Destructor Documentation

◆ SETranslatingPortProxy()

gem5::SETranslatingPortProxy::SETranslatingPortProxy ( ThreadContext * tc,
AllocType alloc = NextPage,
Request::Flags _flags = 0 )

Definition at line 49 of file se_translating_port_proxy.cc.

Member Function Documentation

◆ fixupRange()

Member Data Documentation

◆ allocating

AllocType gem5::SETranslatingPortProxy::allocating
private

Definition at line 61 of file se_translating_port_proxy.hh.

Referenced by fixupRange().


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

Generated on Tue Jun 18 2024 16:24:14 for gem5 by doxygen 1.11.0