gem5  v19.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | List of all members
SecurePortProxy Class Reference

This object is a proxy for a structural port, to be used for debug accesses to secure memory. More...

#include <secure_port_proxy.hh>

Inheritance diagram for SecurePortProxy:
PortProxy FunctionalRequestProtocol

Public Member Functions

bool tryReadBlob (Addr addr, void *p, int size) const override
 Methods to override in base classes. More...
 
bool tryWriteBlob (Addr addr, const void *p, int size) const override
 Write size bytes from p to address. More...
 
bool tryMemsetBlob (Addr addr, uint8_t val, int size) const override
 Fill size bytes starting at addr with byte value val. More...
 
- Public Member Functions inherited from PortProxy
 PortProxy (SendFunctionalFunc func, unsigned int cacheLineSize)
 
 PortProxy (const MasterPort &port, unsigned int cacheLineSize)
 
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...
 

Additional Inherited Members

- Public Types inherited from PortProxy
typedef std::function< void(PacketPtr pkt)> SendFunctionalFunc
 

Detailed Description

This object is a proxy for a structural port, to be used for debug accesses to secure memory.

The addresses are interpreted as physical addresses to secure memory.

Definition at line 70 of file secure_port_proxy.hh.

Member Function Documentation

◆ tryMemsetBlob()

bool SecurePortProxy::tryMemsetBlob ( Addr  addr,
uint8_t  val,
int  size 
) const
overridevirtual

Fill size bytes starting at addr with byte value val.

Returns true on success and false on failure.

Reimplemented from PortProxy.

Definition at line 57 of file secure_port_proxy.cc.

References PortProxy::memsetBlobPhys(), and Request::SECURE.

◆ tryReadBlob()

bool SecurePortProxy::tryReadBlob ( Addr  addr,
void *  p,
int  size 
) const
overridevirtual

Methods to override in base classes.

Read size bytes memory at address and store in p. Returns true on success and false on failure.

Reimplemented from PortProxy.

Definition at line 43 of file secure_port_proxy.cc.

References PortProxy::readBlobPhys(), and Request::SECURE.

◆ tryWriteBlob()

bool SecurePortProxy::tryWriteBlob ( Addr  addr,
const void *  p,
int  size 
) const
overridevirtual

Write size bytes from p to address.

Returns true on success and false on failure.

Reimplemented from PortProxy.

Definition at line 50 of file secure_port_proxy.cc.

References Request::SECURE, and PortProxy::writeBlobPhys().


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

Generated on Fri Feb 28 2020 16:27:15 for gem5 by doxygen 1.8.13