Specialization of basic_guest_ptr<_Tp, guest_ptr_t, _Physical> to handle both uint32_t and uint64_t.
More...
|
| uint64_t | address () const |
| | Basic information.
|
| |
| uint64_t | page_number () const |
| |
| uint64_t | page_offset () const |
| |
| uint64_t | page_directory () const |
| |
| const Domain & | domain () const |
| |
| std::string | str () const |
| |
| bool | x64 () const |
| |
| | operator bool () const |
| |
| auto | operator* () const |
| |
| size_t | length () const |
| |
| std::ostream & | write_stream (std::ostream &os) const |
| |
| basic_guest_ptr< _Tp, _PtrType, _Physical > & | operator++ () |
| |
| basic_guest_ptr< _Tp, _PtrType, _Physical > | operator++ (int) |
| |
| template<typename I > |
| basic_guest_ptr< _Tp, _PtrType, _Physical > & | operator+= (I offset) |
| |
| template<typename I > |
| basic_guest_ptr< _Tp, _PtrType, _Physical > | operator+ (I offset) |
| |
| basic_guest_ptr< _Tp, _PtrType, _Physical > & | operator-- () |
| |
| basic_guest_ptr< _Tp, _PtrType, _Physical > | operator-- (int) |
| |
| template<typename I > |
| basic_guest_ptr< _Tp, _PtrType, _Physical > & | operator-= (I offset) |
| |
| template<typename I > |
| basic_guest_ptr< _Tp, _PtrType, _Physical > | operator- (I offset) |
| |
| template<typename PtrType > |
| bool | operator< (const basic_guest_ptr< void, PtrType, _Physical > &in) const |
| |
| template<typename PtrType > |
| bool | operator<= (const basic_guest_ptr< void, PtrType, _Physical > &in) const |
| |
| template<typename PtrType > |
| bool | operator> (const basic_guest_ptr< void, PtrType, _Physical > &in) const |
| |
| template<typename PtrType > |
| bool | operator>= (const basic_guest_ptr< void, PtrType, _Physical > &in) const |
| |
| template<typename PtrType > |
| bool | operator== (const basic_guest_ptr< void, PtrType, _Physical > &in) const |
| |
| template<typename PtrType > |
| bool | operator!= (const basic_guest_ptr< void, PtrType, _Physical > &in) const |
| |
| auto | at (size_t index) const |
| | Getter methods.
|
| |
| auto | operator[] (size_t index) const |
| |
| auto | get () const |
| |
| template<typename Tp = _Tp, typename std::enable_if_t<!std::is_pointer_v< Tp > > * dummy = nullptr> |
| void | set (uint64_t value) const |
| | Setter methods.
|
| |
| template<typename Tp = _Tp, typename std::enable_if_t<!std::is_pointer_v< Tp > > * dummy = nullptr> |
| void | set (size_t index, uint64_t value) const |
| |
| template<typename Tp = _Tp, typename InTp , typename InPtrType , typename std::enable_if_t< std::is_pointer_v< std::remove_extent_t< Tp > > > * dummy = nullptr> |
| void | set (const basic_guest_ptr< InTp, InPtrType, _Physical > &in) |
| |
| template<typename Tp = _Tp, typename InTp , typename InPtrType , typename std::enable_if_t< std::is_pointer_v< std::remove_extent_t< Tp > > > * dummy = nullptr> |
| void | set (size_t index, const basic_guest_ptr< InTp, InPtrType, _Physical > &in) |
| |
| template<typename Tp = _Tp, typename InTp , typename InPtrType > |
| | GUEST_SIZET_TYPE (const basic_guest_ptr< InTp, InPtrType, _Physical > &in) |
| |
| template<typename Tp = _Tp, typename InTp , typename InPtrType > |
| GUEST_SIZET_TYPE & | operator= (const basic_guest_ptr< InTp, InPtrType, _Physical > &in) |
| |
| template<typename InTp , typename InPtrType > |
| | GUEST_SIZET_TYPE (basic_guest_ptr< InTp, InPtrType, _Physical > &&in) noexcept |
| |
| template<typename Tp = _Tp, typename InTp , typename InPtrType > |
| GUEST_SIZET_TYPE & | operator= (basic_guest_ptr< InTp, InPtrType, _Physical > &&in) noexcept |
| |
| | GUEST_SIZET_TYPE () |
| | Common constructors.
|
| |
| template<typename... Arguments> |
| | GUEST_SIZET_TYPE (bool x64, Arguments &&... args) |
| |
| template<typename... Arguments> |
| | GUEST_SIZET_TYPE (const Vcpu &vcpu, Arguments &&... args) |
| |
| basic_guest_ptr< void, void, _Physical, void > | clone (uint64_t address) const |
| | Helper to create a new instance of this pointer.
|
| |
| template<typename... Arguments> |
| void | reset (const Vcpu &vcpu, Arguments &&... args) |
| | Reset operations.
|
| |
| template<typename... Arguments> |
| void | reset (bool x64, Arguments &&... args) |
| |
| void | reset () |
| |
| template<typename U = _Tp, typename Tp , typename PtrType , typename std::enable_if_t< is_guest_size_v< Tp > > * dummy = nullptr> |
| void | reset (const basic_guest_ptr< Tp, PtrType, _Physical > &in) |
| |
| template<typename U = _Tp, typename Tp , typename PtrType , typename std::enable_if_t< is_guest_size_v< Tp > > * dummy = nullptr> |
| void | reset (basic_guest_ptr< Tp, PtrType, _Physical > &&in) |
| |
| | GUEST_SIZET_TYPE (const GUEST_SIZET_TYPE &) noexcept=default |
| | Default constructors.
|
| |
| GUEST_SIZET_TYPE & | operator= (const GUEST_SIZET_TYPE &) noexcept=default |
| |
| | GUEST_SIZET_TYPE (GUEST_SIZET_TYPE &&) noexcept=default |
| |
| GUEST_SIZET_TYPE & | operator= (GUEST_SIZET_TYPE &&) noexcept=default |
| |
|
| 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 > &&) |
| |
template<typename _Tp, typename _PtrType, bool _Physical>
class introvirt::GUEST_SIZET_TYPE< _Tp, _PtrType, _Physical >
Specialization of basic_guest_ptr<_Tp, guest_ptr_t, _Physical> to handle both uint32_t and uint64_t.
This class cannot return actual references or pointers, because the size can vary.