libintrovirt v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
introvirt::x86::Registers Class Referenceabstract

A class for holding x86 register state. More...

#include <Registers.hh>

Public Member Functions

virtual uint64_t rax () const =0
 Get the rax register value.
 
virtual void rax (uint64_t val)=0
 Set the rax register value.
 
virtual uint64_t rbx () const =0
 Get the rbx register value.
 
virtual void rbx (uint64_t val)=0
 Set the rbx register value.
 
virtual uint64_t rcx () const =0
 Get the rcx register value.
 
virtual void rcx (uint64_t val)=0
 Set the rcx register value.
 
virtual uint64_t rdx () const =0
 Get the rdx register value.
 
virtual void rdx (uint64_t val)=0
 Set the rdx register value.
 
virtual uint64_t r15 () const =0
 Get the r15 register value.
 
virtual void r15 (uint64_t val)=0
 Set the r15 register value.
 
virtual uint64_t r14 () const =0
 Get the r14 register value.
 
virtual void r14 (uint64_t val)=0
 Set the r14 register value.
 
virtual uint64_t r13 () const =0
 Get the r13 register value.
 
virtual void r13 (uint64_t val)=0
 Set the r13 register value.
 
virtual uint64_t r12 () const =0
 Get the r12 register value.
 
virtual void r12 (uint64_t val)=0
 Set the r12 register value.
 
virtual uint64_t r11 () const =0
 Get the r11 register value.
 
virtual void r11 (uint64_t val)=0
 Set the r11 register value.
 
virtual uint64_t r10 () const =0
 Get the r10 register value.
 
virtual void r10 (uint64_t val)=0
 Set the r10 register value.
 
virtual uint64_t r9 () const =0
 Get the r9 register value.
 
virtual void r9 (uint64_t val)=0
 Set the r9 register value.
 
virtual uint64_t r8 () const =0
 Get the r8 register value.
 
virtual void r8 (uint64_t val)=0
 Set the r8 register value.
 
virtual uint64_t rsi () const =0
 Get the rsi register value.
 
virtual void rsi (uint64_t val)=0
 Set the rsi register value.
 
virtual uint64_t rdi () const =0
 Get the rdi register value.
 
virtual void rdi (uint64_t val)=0
 Set the rdi register value.
 
virtual uint64_t rsp () const =0
 Get the rsp register value.
 
virtual void rsp (uint64_t val)=0
 Set the rsp register value.
 
virtual uint64_t rbp () const =0
 Get the rbp register value.
 
virtual void rbp (uint64_t val)=0
 Set the rbp register value.
 
virtual uint64_t rip () const =0
 Get the rip register value.
 
virtual void rip (uint64_t val)=0
 Set the rip register value.
 
virtual Flagsrflags ()=0
 Get the rflags register value.
 
virtual const Flagsrflags () const =0
 Get the rflags register value.
 
virtual void rflags (const Flags &val)=0
 Convenience method for rflags().value(val.value())
 
virtual Efer efer () const =0
 Get the Efer MSR.
 
virtual uint64_t msr (Msr msr) const =0
 Get a raw MSR value.
 
virtual void msr (Msr msr, uint64_t val)=0
 Set a raw MSR value.
 
virtual Segment cs () const =0
 Get the code segment register.
 
virtual void cs (x86::Segment seg)=0
 Set the code segment register.
 
virtual bool cs_long_mode () const =0
 Get long mode for the current code segment.
 
virtual Segment ds () const =0
 Get the data segment register.
 
virtual Segment es () const =0
 Get the ES register.
 
virtual Segment fs () const =0
 Get the FS register.
 
virtual Segment gs () const =0
 Get the GS register.
 
virtual Segment ss () const =0
 Get the stack segment register.
 
virtual Segment tr () const =0
 Get the task segment register.
 
virtual Segment ldt () const =0
 Get the segment descriptor for the ldt.
 
virtual Cr0 cr0 () const =0
 Get control register 0.
 
virtual uint64_t cr2 () const =0
 Get control register 2.
 
virtual uint64_t cr3 () const =0
 Get control register 3.
 
virtual Cr4 cr4 () const =0
 Get control register 4.
 
virtual uint64_t cr8 () const =0
 Get control register 8.
 
virtual uint64_t gdtr_base () const =0
 Get the gdtr segment base register.
 
virtual uint32_t gdtr_limit () const =0
 Get the gdtr segment limit register.
 
virtual uint64_t idtr_base () const =0
 Get the interrupt descritor table base address.
 
virtual uint32_t idtr_limit () const =0
 Get the interrupt descritor table limit.
 
virtual ~Registers ()=default
 Destroy the instance.
 

Detailed Description

A class for holding x86 register state.

Examples
ivcr3mon.cc.

Constructor & Destructor Documentation

◆ ~Registers()

virtual introvirt::x86::Registers::~Registers ( )
virtualdefault

Destroy the instance.

Member Function Documentation

◆ cr0()

virtual Cr0 introvirt::x86::Registers::cr0 ( ) const
pure virtual

Get control register 0.

Returns
The value held by the Cr0 register

◆ cr2()

virtual uint64_t introvirt::x86::Registers::cr2 ( ) const
pure virtual

Get control register 2.

Returns
The value held by the Cr2 register

◆ cr3()

virtual uint64_t introvirt::x86::Registers::cr3 ( ) const
pure virtual

Get control register 3.

Returns
The value held by the Cr3 register
Examples
ivcr3mon.cc.

◆ cr4()

virtual Cr4 introvirt::x86::Registers::cr4 ( ) const
pure virtual

Get control register 4.

Returns
The value held by the Cr4 register

◆ cr8()

virtual uint64_t introvirt::x86::Registers::cr8 ( ) const
pure virtual

Get control register 8.

Returns
The value held by the Cr8 register

◆ cs() [1/2]

virtual Segment introvirt::x86::Registers::cs ( ) const
pure virtual

Get the code segment register.

Returns
The code segment register

◆ cs() [2/2]

virtual void introvirt::x86::Registers::cs ( x86::Segment  seg)
pure virtual

Set the code segment register.

Parameters
segThe code segment register

◆ cs_long_mode()

virtual bool introvirt::x86::Registers::cs_long_mode ( ) const
pure virtual

Get long mode for the current code segment.

Returns
true if the current code segment is in long mode
false if the current code segment is in long mode

◆ ds()

virtual Segment introvirt::x86::Registers::ds ( ) const
pure virtual

Get the data segment register.

Returns
The data segment register

◆ efer()

virtual Efer introvirt::x86::Registers::efer ( ) const
pure virtual

Get the Efer MSR.

Returns
The Efer MSR

◆ es()

virtual Segment introvirt::x86::Registers::es ( ) const
pure virtual

Get the ES register.

Returns
The ES register

◆ fs()

virtual Segment introvirt::x86::Registers::fs ( ) const
pure virtual

Get the FS register.

Returns
The FS register

◆ gdtr_base()

virtual uint64_t introvirt::x86::Registers::gdtr_base ( ) const
pure virtual

Get the gdtr segment base register.

Returns
the gdtr segment base register

◆ gdtr_limit()

virtual uint32_t introvirt::x86::Registers::gdtr_limit ( ) const
pure virtual

Get the gdtr segment limit register.

Returns
the gdtr segment limit register

◆ gs()

virtual Segment introvirt::x86::Registers::gs ( ) const
pure virtual

Get the GS register.

Returns
The GS register

◆ idtr_base()

virtual uint64_t introvirt::x86::Registers::idtr_base ( ) const
pure virtual

Get the interrupt descritor table base address.

Returns
the idtr base address

◆ idtr_limit()

virtual uint32_t introvirt::x86::Registers::idtr_limit ( ) const
pure virtual

Get the interrupt descritor table limit.

Returns
the idtr limit

◆ ldt()

virtual Segment introvirt::x86::Registers::ldt ( ) const
pure virtual

Get the segment descriptor for the ldt.

Returns
The ldt segment register

◆ msr() [1/2]

virtual uint64_t introvirt::x86::Registers::msr ( Msr  msr) const
pure virtual

Get a raw MSR value.

Parameters
msrThe MSR to retreive
Returns
The value held by the MSR
Exceptions
CommandFailedExceptionif the msr could not be retrieved

◆ msr() [2/2]

virtual void introvirt::x86::Registers::msr ( Msr  msr,
uint64_t  val 
)
pure virtual

Set a raw MSR value.

Parameters
msrThe MSR to set
valThe value to set in the MSR
Exceptions
CommandFailedExceptionif the msr could not be set

◆ r10() [1/2]

virtual uint64_t introvirt::x86::Registers::r10 ( ) const
pure virtual

Get the r10 register value.

Returns
The value held by the r10 register

◆ r10() [2/2]

virtual void introvirt::x86::Registers::r10 ( uint64_t  val)
pure virtual

Set the r10 register value.

Parameters
valThe value to set

◆ r11() [1/2]

virtual uint64_t introvirt::x86::Registers::r11 ( ) const
pure virtual

Get the r11 register value.

Returns
The value held by the r11 register

◆ r11() [2/2]

virtual void introvirt::x86::Registers::r11 ( uint64_t  val)
pure virtual

Set the r11 register value.

Parameters
valThe value to set

◆ r12() [1/2]

virtual uint64_t introvirt::x86::Registers::r12 ( ) const
pure virtual

Get the r12 register value.

Returns
The value held by the r12 register

◆ r12() [2/2]

virtual void introvirt::x86::Registers::r12 ( uint64_t  val)
pure virtual

Set the r12 register value.

Parameters
valThe value to set

◆ r13() [1/2]

virtual uint64_t introvirt::x86::Registers::r13 ( ) const
pure virtual

Get the r13 register value.

Returns
The value held by the r13 register

◆ r13() [2/2]

virtual void introvirt::x86::Registers::r13 ( uint64_t  val)
pure virtual

Set the r13 register value.

Parameters
valThe value to set

◆ r14() [1/2]

virtual uint64_t introvirt::x86::Registers::r14 ( ) const
pure virtual

Get the r14 register value.

Returns
The value held by the r15 register

◆ r14() [2/2]

virtual void introvirt::x86::Registers::r14 ( uint64_t  val)
pure virtual

Set the r14 register value.

Parameters
valThe value to set

◆ r15() [1/2]

virtual uint64_t introvirt::x86::Registers::r15 ( ) const
pure virtual

Get the r15 register value.

Returns
The value held by the r15 register

◆ r15() [2/2]

virtual void introvirt::x86::Registers::r15 ( uint64_t  val)
pure virtual

Set the r15 register value.

Parameters
valThe value to set

◆ r8() [1/2]

virtual uint64_t introvirt::x86::Registers::r8 ( ) const
pure virtual

Get the r8 register value.

Returns
The value held by the r8 register

◆ r8() [2/2]

virtual void introvirt::x86::Registers::r8 ( uint64_t  val)
pure virtual

Set the r8 register value.

Parameters
valThe value to set

◆ r9() [1/2]

virtual uint64_t introvirt::x86::Registers::r9 ( ) const
pure virtual

Get the r9 register value.

Returns
The value held by the r9 register

◆ r9() [2/2]

virtual void introvirt::x86::Registers::r9 ( uint64_t  val)
pure virtual

Set the r9 register value.

Parameters
valThe value to set

◆ rax() [1/2]

virtual uint64_t introvirt::x86::Registers::rax ( ) const
pure virtual

Get the rax register value.

Returns
The value held by the rax register

◆ rax() [2/2]

virtual void introvirt::x86::Registers::rax ( uint64_t  val)
pure virtual

Set the rax register value.

Parameters
valThe value to set

◆ rbp() [1/2]

virtual uint64_t introvirt::x86::Registers::rbp ( ) const
pure virtual

Get the rbp register value.

Returns
The value held by the rbp register

◆ rbp() [2/2]

virtual void introvirt::x86::Registers::rbp ( uint64_t  val)
pure virtual

Set the rbp register value.

Parameters
valThe value to set

◆ rbx() [1/2]

virtual uint64_t introvirt::x86::Registers::rbx ( ) const
pure virtual

Get the rbx register value.

Returns
The value held by the rbx register

◆ rbx() [2/2]

virtual void introvirt::x86::Registers::rbx ( uint64_t  val)
pure virtual

Set the rbx register value.

Parameters
valThe value to set

◆ rcx() [1/2]

virtual uint64_t introvirt::x86::Registers::rcx ( ) const
pure virtual

Get the rcx register value.

Returns
The value held by the rcx register

◆ rcx() [2/2]

virtual void introvirt::x86::Registers::rcx ( uint64_t  val)
pure virtual

Set the rcx register value.

Parameters
valThe value to set

◆ rdi() [1/2]

virtual uint64_t introvirt::x86::Registers::rdi ( ) const
pure virtual

Get the rdi register value.

Returns
The value held by the rdi register

◆ rdi() [2/2]

virtual void introvirt::x86::Registers::rdi ( uint64_t  val)
pure virtual

Set the rdi register value.

Parameters
valThe value to set

◆ rdx() [1/2]

virtual uint64_t introvirt::x86::Registers::rdx ( ) const
pure virtual

Get the rdx register value.

Returns
The value held by the rdx register

◆ rdx() [2/2]

virtual void introvirt::x86::Registers::rdx ( uint64_t  val)
pure virtual

Set the rdx register value.

Parameters
valThe value to set

◆ rflags() [1/3]

virtual const Flags & introvirt::x86::Registers::rflags ( ) const
pure virtual

Get the rflags register value.

Returns
The value held by the rflags register

◆ rflags() [2/3]

virtual Flags & introvirt::x86::Registers::rflags ( )
pure virtual

Get the rflags register value.

Returns
The value held by the rflags register

◆ rflags() [3/3]

virtual void introvirt::x86::Registers::rflags ( const Flags val)
pure virtual

Convenience method for rflags().value(val.value())

Parameters
valThe value to copy into this Vcpu's rflags

◆ rip() [1/2]

virtual uint64_t introvirt::x86::Registers::rip ( ) const
pure virtual

Get the rip register value.

Returns
The value held by the rip register

◆ rip() [2/2]

virtual void introvirt::x86::Registers::rip ( uint64_t  val)
pure virtual

Set the rip register value.

Parameters
valThe value to set

◆ rsi() [1/2]

virtual uint64_t introvirt::x86::Registers::rsi ( ) const
pure virtual

Get the rsi register value.

Returns
The value held by the rsi register

◆ rsi() [2/2]

virtual void introvirt::x86::Registers::rsi ( uint64_t  val)
pure virtual

Set the rsi register value.

Parameters
valThe value to set

◆ rsp() [1/2]

virtual uint64_t introvirt::x86::Registers::rsp ( ) const
pure virtual

Get the rsp register value.

Returns
The value held by the rsp register
Examples
ivcallmon.cc.

◆ rsp() [2/2]

virtual void introvirt::x86::Registers::rsp ( uint64_t  val)
pure virtual

Set the rsp register value.

Parameters
valThe value to set

◆ ss()

virtual Segment introvirt::x86::Registers::ss ( ) const
pure virtual

Get the stack segment register.

Returns
The stack segment register

◆ tr()

virtual Segment introvirt::x86::Registers::tr ( ) const
pure virtual

Get the task segment register.

Returns
The task segment register

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