gem5  v22.1.0.0
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
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, int size) const override
 Version of tryReadblob that translates virt->phys and deals with page boundries. More...
 
bool tryWriteBlob (Addr addr, const void *p, int size) const override
 Version of tryWriteBlob that translates virt->phys and deals with page boundries. More...
 
bool tryMemsetBlob (Addr address, uint8_t v, int size) const override
 Fill size bytes starting at addr with byte value val. More...
 
- Public Member Functions inherited from gem5::PortProxy
 PortProxy (SendFunctionalFunc func, unsigned int cache_line_size)
 
 PortProxy (ThreadContext *tc, unsigned int cache_line_size)
 
 PortProxy (const RequestPort &port, unsigned int cache_line_size)
 
virtual ~PortProxy ()
 
void readBlobPhys (Addr addr, Request::Flags flags, void *p, int size) const
 Fixed functionality for use in base classes. More...
 
void writeBlobPhys (Addr addr, Request::Flags flags, const void *p, int size) const
 Write size bytes from p to physical address. More...
 
void memsetBlobPhys (Addr addr, Request::Flags flags, uint8_t v, int size) const
 Fill size bytes starting at physical addr with byte value val. More...
 
void readBlob (Addr addr, void *p, int size) const
 Higher level interfaces based on the above. More...
 
void writeBlob (Addr addr, const void *p, int size) const
 Same as tryWriteBlob, but insists on success. More...
 
void memsetBlob (Addr addr, uint8_t v, int size) const
 Same as tryMemsetBlob, but insists on success. 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, const T &data) const
 Write object T to address. More...
 
template<typename T >
read (Addr address, ByteOrder guest_byte_order) const
 Read sizeof(T) bytes from address and return as object T. More...
 
template<typename T >
void write (Addr address, T data, ByteOrder guest_byte_order) const
 Write object T to address. More...
 
bool tryWriteString (Addr addr, const char *str) const
 Write the string str into guest memory at address addr. More...
 
void writeString (Addr addr, const char *str) const
 Same as tryWriteString, but insists on success. More...
 
bool tryReadString (std::string &str, Addr addr) const
 Reads the string at guest address addr into the std::string str. More...
 
void readString (std::string &str, Addr addr) const
 Same as tryReadString, but insists on success. More...
 
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. More...
 
void readString (char *str, Addr addr, size_t maxlen) const
 Same as tryReadString, but insists on success. More...
 

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

bool gem5::SETranslatingPortProxy::fixupRange ( const TranslationGen::Range range,
BaseMMU::Mode  mode 
) const
overrideprotectedvirtual

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 Wed Dec 21 2022 10:23:28 for gem5 by doxygen 1.9.1