ReXGlue SDK
Loading...
Searching...
No Matches
rex::memory::MappedPtr< T > Class Template Reference

#include <rex/memory/mapped_ptr.h>

Public Member Functions

 MappedPtr ()=default
 MappedPtr (T *host_ptr, u32 guest_addr)
 MappedPtr (std::nullptr_t)
u32 GetGuestAddress () const
T * GetHostPtr () const
 operator T* () const
T * operator-> () const
T & operator* () const
auto GetValue () const
 operator bool () const
 operator u32 () const
MappedPtr operator+ (std::ptrdiff_t offset) const
MappedPtr operator- (std::ptrdiff_t offset) const
template<typename U>
U As () const
template<typename U>
rex::BE< U > * AsArray () const
void Zero () const
void Zero (size_t size) const

Static Public Member Functions

static MappedPtr FromHost (T *host_ptr)

Detailed Description

template<typename T>
class rex::memory::MappedPtr< T >

Host pointer paired with the guest address it maps.

Constructor & Destructor Documentation

◆ MappedPtr() [1/2]

template<typename T>
rex::memory::MappedPtr< T >::MappedPtr ( )
default

Null pointer at guest address 0.

◆ MappedPtr() [2/2]

template<typename T>
rex::memory::MappedPtr< T >::MappedPtr ( std::nullptr_t )
inline

Null pointer at guest address 0.

Member Function Documentation

◆ AsArray()

template<typename T>
template<typename U>
rex::BE< U > * rex::memory::MappedPtr< T >::AsArray ( ) const
inline
Returns
The host pointer as an array of big endian U values.

◆ FromHost()

template<typename T>
MappedPtr rex::memory::MappedPtr< T >::FromHost ( T * host_ptr)
inlinestatic
Returns
A MappedPtr with guest address 0.

◆ GetValue()

template<typename T>
auto rex::memory::MappedPtr< T >::GetValue ( ) const
inline
Returns
The pointee, converted to native byte order when T is a BE<> type.

◆ operator+()

template<typename T>
MappedPtr rex::memory::MappedPtr< T >::operator+ ( std::ptrdiff_t offset) const
inline
Parameters
offsetElements to advance.
Returns
A MappedPtr with both addresses advanced by offset elements.

◆ operator-()

template<typename T>
MappedPtr rex::memory::MappedPtr< T >::operator- ( std::ptrdiff_t offset) const
inline
Parameters
offsetElements to move back.
Returns
A MappedPtr with both addresses moved back by offset elements.

◆ Zero() [1/2]

template<typename T>
void rex::memory::MappedPtr< T >::Zero ( ) const
inline

Zeroes sizeof(T) bytes at the host pointer. Does nothing when it is null.

◆ Zero() [2/2]

template<typename T>
void rex::memory::MappedPtr< T >::Zero ( size_t size) const
inline

Zeroes bytes at the host pointer. Does nothing when it is null.


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