|
| uint64_t | address () const |
| | Functions for getting the underlying address.
|
| |
| uint64_t | page_mask () const |
| |
| uint64_t | page_number () const |
| |
| uint64_t | page_offset () const |
| |
| uint64_t | page_directory () const |
| |
| const Domain & | domain () const |
| |
| size_t | length () const |
| |
| decltype(auto) | operator[] (size_t index) const |
| |
| decltype(auto) | operator* () const |
| | Operators regardless of the underlying type.
|
| |
| auto | operator-> () const |
| |
| auto | get () const |
| |
| decltype(auto) | at (size_t index) const |
| |
| template<typename U = _Tp, typename type = array_element_type, typename std::enable_if_t<!std::is_void_v< U > &&!std::is_pointer_v< U > > * dummy = nullptr> |
| void | set (type value) const |
| | Setter methods.
|
| |
| template<typename U = _Tp, typename type = array_element_type, typename std::enable_if_t<!std::is_void_v< U > &&!std::is_pointer_v< U > > * dummy = nullptr> |
| void | set (size_t index, type value) const |
| |
| template<typename U = array_element_type, typename PtrType = _PtrType, typename InTp , typename InPtrType , typename std::enable_if_t< std::is_pointer_v< U > > * dummy = nullptr> |
| void | set (const basic_guest_ptr< InTp, InPtrType, _Physical > &in) const |
| |
| template<typename U = array_element_type, typename PtrType = _PtrType, typename InTp , typename InPtrType , typename std::enable_if_t< std::is_pointer_v< U > > * dummy = nullptr> |
| void | set (size_t index, const basic_guest_ptr< InTp, InPtrType, _Physical > &in) const |
| |
| template<typename U = _Tp, typename std::enable_if_t<!std::is_void_v< U > &&!std::is_pointer_v< U > > * dummy = nullptr> |
| | operator pointer_type () const |
| | Implicit conversion operators.
|
| |
| template<typename U = _Tp, typename std::enable_if_t<!std::is_pointer_v< U > > * dummy = nullptr> |
| pointer_type | begin () const |
| | Array operations for non-pointer types.
|
| |
| template<typename U = _Tp, typename std::enable_if_t<!std::is_pointer_v< U > > * dummy = nullptr> |
| pointer_type | end () const |
| |
| | basic_guest_ptr () |
| | Default constructor and null reset.
|
| |
| void | reset () |
| |
| | basic_guest_ptr (std::nullptr_t) |
| | Special constructor to automatically create from nullptr.
|
| |
| template<bool Physical = _Physical, typename InPtrType , typename std::enable_if_t< Physical > * dummy = nullptr> |
| | basic_guest_ptr (const basic_guest_ptr< _Tp, InPtrType, false > &in) |
| | Special constructor to create guest_phys_ptr from guest_ptr.
|
| |
| template<bool is_guest_ptr_t_v = _is_guest_ptr_t_v, typename... Arguments, typename std::enable_if_t< is_guest_ptr_t_v > * dummy = nullptr> |
| | basic_guest_ptr (bool x64, Arguments &&... args) |
| | Special constructor and reset for guest_ptr_t variant.
|
| |
| template<bool is_guest_ptr_t_v = _is_guest_ptr_t_v, typename... Arguments, typename std::enable_if_t< is_guest_ptr_t_v > * dummy = nullptr> |
| void | reset (bool x64, Arguments &&... args) |
| |
| template<bool is_array = _is_array_v, typename std::enable_if_t<!is_array &&_Physical > * dummy = nullptr> |
| | basic_guest_ptr (const Domain &domain, uint64_t address) |
| | Physical pointer constructors.
|
| |
| template<bool is_array = _is_array_v, typename std::enable_if_t<!is_array &&_Physical > * dummy = nullptr> |
| void | reset (const Domain &domain, uint64_t address) |
| |
| template<bool is_array = _is_array_v, typename = typename std::enable_if_t<is_array && _Physical>> |
| | basic_guest_ptr (const Domain &domain, uint64_t address, size_t length) |
| |
| template<bool is_array = _is_array_v, typename = typename std::enable_if_t<is_array && _Physical>> |
| void | reset (const Domain &domain, uint64_t address, size_t length) |
| |
| template<bool is_array = _is_array_v, typename std::enable_if_t<!is_array &&!_Physical > * dummy = nullptr> |
| | basic_guest_ptr (const Domain &domain, uint64_t address, uint64_t page_directory) |
| | Virtual pointer constructors and reset methods.
|
| |
| template<bool is_array = _is_array_v, typename std::enable_if_t<!is_array &&!_Physical > * dummy = nullptr> |
| void | reset (const Domain &domain, uint64_t address, uint64_t page_directory) |
| |
| template<bool is_array = _is_array_v, typename std::enable_if_t< is_array &&!_Physical > * dummy = nullptr> |
| | basic_guest_ptr (const Domain &domain, uint64_t address, uint64_t page_directory, size_t length) |
| |
| template<bool is_array = _is_array_v, typename std::enable_if_t< is_array &&!_Physical > * dummy = nullptr> |
| void | reset (const Domain &domain, uint64_t address, uint64_t page_directory, size_t length) |
| |
| | basic_guest_ptr (const Vcpu &vcpu, uint64_t address) |
| | Helper constructor and reset using a vcpu.
|
| |
| void | reset (const Vcpu &vcpu, uint64_t address) |
| |
| | basic_guest_ptr (const Vcpu &vcpu, uint64_t address, size_t length) |
| |
| void | reset (const Vcpu &vcpu, uint64_t address, size_t length) |
| |
| void | reset (uint64_t address) |
| | Helper reset methods specifying only an address (and length for arrays)
|
| |
| void | reset (uint64_t address, size_t length) |
| |
| template<typename Tp , typename PtrType > |
| | basic_guest_ptr (const basic_guest_ptr< Tp, PtrType, _Physical > &in) |
| | Copy and move constructors/assignments and reset methods.
|
| |
| template<typename Tp , typename PtrType > |
| | basic_guest_ptr (const basic_guest_ptr< Tp, PtrType, _Physical > &in, size_t length) |
| |
| template<typename Tp , typename PtrType > |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > & | operator= (const basic_guest_ptr< Tp, PtrType, _Physical > &in) |
| |
| template<typename Tp , typename PtrType > |
| void | reset (const basic_guest_ptr< Tp, PtrType, _Physical > &in) |
| |
| template<typename Tp , typename PtrType > |
| void | reset (const basic_guest_ptr< Tp, PtrType, _Physical > &in, size_t length) |
| |
| template<typename Tp , typename PtrType > |
| | basic_guest_ptr (basic_guest_ptr< Tp, PtrType, _Physical > &&in) |
| |
| template<typename Tp , typename PtrType > |
| | basic_guest_ptr (basic_guest_ptr< Tp, PtrType, _Physical > &&in, size_t length) |
| |
| template<typename Tp , typename PtrType > |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > & | operator= (basic_guest_ptr< Tp, PtrType, _Physical > &&in) |
| |
| template<typename Tp , typename PtrType > |
| void | reset (basic_guest_ptr< Tp, PtrType, _Physical > &&in) |
| |
| template<typename Tp , typename PtrType > |
| void | reset (basic_guest_ptr< Tp, PtrType, _Physical > &&in, size_t length) |
| |
| basic_guest_ptr< void, void, _Physical, void > | clone (uint64_t address) const |
| | Helper to create a new instance of this pointer.
|
| |
| | basic_guest_ptr (const basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > &) noexcept=default |
| | Default constructors and copy/move operators.
|
| |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > & | operator= (const basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > &) noexcept=default |
| |
| | basic_guest_ptr (basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > &&) noexcept=default |
| |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > & | operator= (basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > &&) noexcept=default |
| |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > & | operator++ () |
| | Math operators.
|
| |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > | operator++ (int) |
| |
| template<typename I > |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > & | operator+= (I offset) |
| |
| template<typename I > |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > | operator+ (I offset) const |
| |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > & | operator-- () |
| |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > | operator-- (int) |
| |
| template<typename I > |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > & | operator-= (I offset) |
| |
| template<typename I > |
| basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > | operator- (I offset) const |
| |
| template<typename Tp , typename PtrType > |
| ptrdiff_t | operator- (const basic_guest_ptr< Tp, PtrType, _Physical > &in) const |
| |
| | operator bool () const |
| |
| bool | operator< (const basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > &in) const |
| |
| bool | operator<= (const basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > &in) const |
| |
| bool | operator> (const basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > &in) const |
| |
| bool | operator>= (const basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > &in) const |
| |
| bool | operator== (const basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > &in) const |
| |
| bool | operator!= (const basic_guest_ptr< _Tp, _PtrType, _Physical, _Enabled > &in) const |
| |
| template<typename U = std::remove_const_t<basic_type>, typename std::enable_if_t< _is_array_v &&std::is_same_v< U, char > > * dummy = nullptr> |
| | operator std::string_view () const |
| |
| template<typename U = std::remove_const_t<basic_type>, typename std::enable_if_t< std::is_same_v< U, char > > * dummy = nullptr> |
| std::string_view | str () const |
| |
| template<typename U = std::remove_const_t<basic_type>, typename std::enable_if_t< _is_array_v &&std::is_same_v< U, char16_t > > * dummy = nullptr> |
| | operator std::u16string_view () const |
| |
| template<typename U = std::remove_const_t<basic_type>, typename std::enable_if_t< std::is_same_v< U, char16_t > > * dummy = nullptr> |
| std::u16string_view | wstr () const |
| |
| template<typename U = std::remove_const_t<basic_type>, typename std::enable_if_t< std::is_same_v< U, char16_t > > * dummy = nullptr> |
| std::string | str () const |
| |
| template<typename U = std::remove_const_t<_Tp>, typename std::enable_if_t<(!std::is_same_v< U, char[]> &&!std::is_same_v< U, char16_t[]>)> * dummy = nullptr> |
| std::ostream & | write_stream (std::ostream &os) const |
| |
| template<typename U = std::remove_const_t<_Tp>, typename std::enable_if_t<(std::is_same_v< U, char[]>||std::is_same_v< U, char16_t[]>)> * dummy = nullptr> |
| std::ostream & | write_stream (std::ostream &os) const |
| |
|
| template<typename U , typename PtrType , bool Physical, typename Enabled > |
| class | basic_guest_ptr |
| |
| template<typename OutTp , typename OutPtrType , typename InTp , typename InPtrType , bool Physical> |
| void | _ptr_cast_impl (const basic_guest_ptr< InTp, InPtrType, Physical > &, basic_guest_ptr< OutTp, OutPtrType, Physical > &) |
| | Friend the casting functions.
|
| |
| template<typename OutTp , typename OutPtrType , typename InTp , typename InPtrType , bool Physical> |
| basic_guest_ptr< OutTp, OutPtrType, Physical > | const_ptr_cast (const basic_guest_ptr< InTp, InPtrType, Physical > &) |
| |
| template<typename OutTp , typename OutPtrType , typename InTp , typename InPtrType , bool Physical> |
| basic_guest_ptr< OutTp, OutPtrType, Physical > | static_ptr_cast (const basic_guest_ptr< InTp, InPtrType, Physical > &) |
| |
| template<typename OutTp , typename OutPtrType , typename InTp , typename InPtrType , bool Physical> |
| basic_guest_ptr< OutTp, OutPtrType, Physical > | reinterpret_ptr_cast (const basic_guest_ptr< InTp, InPtrType, Physical > &) |
| |
| template<typename OutTp , typename OutPtrType , typename InTp , typename InPtrType , bool Physical> |
| basic_guest_ptr< OutTp, OutPtrType, Physical > | const_ptr_cast (basic_guest_ptr< InTp, InPtrType, Physical > &&) |
| |
| template<typename OutTp , typename OutPtrType , typename InTp , typename InPtrType , bool Physical> |
| basic_guest_ptr< OutTp, OutPtrType, Physical > | static_ptr_cast (basic_guest_ptr< InTp, InPtrType, Physical > &&) |
| |
| template<typename OutTp , typename OutPtrType , typename InTp , typename InPtrType , bool Physical> |
| basic_guest_ptr< OutTp, OutPtrType, Physical > | reinterpret_ptr_cast (basic_guest_ptr< InTp, InPtrType, Physical > &&) |
| |