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

Interface class for hypervisor events. More...

#include <Event.hh>

Inheritance diagram for introvirt::Event:

Public Member Functions

virtual Vcpuvcpu ()=0
 Get the Vcpu that triggered the event.
 
virtual const Vcpuvcpu () const =0
 Get the Vcpu that triggered the event.
 
virtual Domaindomain ()=0
 Get the Domain that the event is for.
 
virtual const Domaindomain () const =0
 Get the Domain that the event is for.
 
virtual EventType type () const =0
 Get the type of event.
 
virtual SystemCallEventsyscall ()=0
 Get system call event information.
 
virtual const SystemCallEventsyscall () const =0
 Get system call event information.
 
virtual ControlRegisterEventcr ()=0
 Get control register access event information.
 
virtual const ControlRegisterEventcr () const =0
 Get control register access event information.
 
virtual MsrAccessEventmsr ()=0
 Get MSR access event information.
 
virtual const MsrAccessEventmsr () const =0
 Get MSR access event information.
 
virtual ExceptionEventexception ()=0
 Get x86 exception event information.
 
virtual const ExceptionEventexception () const =0
 Get x86 exception event information.
 
virtual MemAccessEventmem_access ()=0
 Get memory access event information.
 
virtual const MemAccessEventmem_access () const =0
 Get memory access event information.
 
virtual EventTaskInformationtask ()=0
 Get the task information.
 
virtual const EventTaskInformationtask () const =0
 Get the task information.
 
virtual OS os_type () const =0
 
virtual Json::Value json () const =0
 Serialize the event into JSON.
 
virtual uint64_t id () const =0
 Get the unique identifier for this event.
 
virtual EventImpl & impl ()=0
 Used internally.
 
virtual ~Event ()=default
 Destroy the instance.
 

Detailed Description

Constructor & Destructor Documentation

◆ ~Event()

virtual introvirt::Event::~Event ( )
virtualdefault

Destroy the instance.

Member Function Documentation

◆ cr() [1/2]

virtual const ControlRegisterEvent & introvirt::Event::cr ( ) const
pure virtual

Get control register access event information.

Returns
The control register event information
Exceptions
InvalidMethodExceptionif the event type is not supported

◆ cr() [2/2]

virtual ControlRegisterEvent & introvirt::Event::cr ( )
pure virtual

Get control register access event information.

Returns
The control register event information
Exceptions
InvalidMethodExceptionif the event type is not supported
Examples
ivcallmon.cc, and ivcr3mon.cc.

◆ domain() [1/2]

virtual const Domain & introvirt::Event::domain ( ) const
pure virtual

Get the Domain that the event is for.

Returns
The domain that the event is for
const Domain&

◆ domain() [2/2]

virtual Domain & introvirt::Event::domain ( )
pure virtual

Get the Domain that the event is for.

Returns
The domain that the event is for
Examples
ivcallmon.cc, and ivprocmemdump.cc.

◆ exception() [1/2]

virtual const ExceptionEvent & introvirt::Event::exception ( ) const
pure virtual

Get x86 exception event information.

Returns
The x86 exception event information
Exceptions
InvalidMethodExceptionif the event type is not supported

◆ exception() [2/2]

virtual ExceptionEvent & introvirt::Event::exception ( )
pure virtual

Get x86 exception event information.

Returns
The x86 exception event information
Exceptions
InvalidMethodExceptionif the event type is not supported

◆ id()

virtual uint64_t introvirt::Event::id ( ) const
pure virtual

Get the unique identifier for this event.

◆ impl()

virtual EventImpl & introvirt::Event::impl ( )
pure virtual

Used internally.

Returns
EventImpl&

◆ json()

virtual Json::Value introvirt::Event::json ( ) const
pure virtual

Serialize the event into JSON.

Returns
A JSON representation of this Event

◆ mem_access() [1/2]

virtual const MemAccessEvent & introvirt::Event::mem_access ( ) const
pure virtual

Get memory access event information.

This is implemented using HAP violations. A page can be marked as any combination of R/W/X. When an access occurs that is not allowed, an event is delivered.

If the event is not handled, when the guest resumes it will just fault again.

Returns
The memory access event information
Exceptions
InvalidMethodExceptionif the event type is not supported

◆ mem_access() [2/2]

virtual MemAccessEvent & introvirt::Event::mem_access ( )
pure virtual

Get memory access event information.

This is implemented using HAP violations. A page can be marked as any combination of R/W/X. When an access occurs that is not allowed, an event is delivered.

If the event is not handled, when the guest resumes it will just fault again.

Returns
The memory access event information
Exceptions
InvalidMethodExceptionif the event type is not supported
Examples
ivmemwatch.cc, and vmcall_interface.cc.

◆ msr() [1/2]

virtual const MsrAccessEvent & introvirt::Event::msr ( ) const
pure virtual

Get MSR access event information.

Returns
The MSR event information
Exceptions
InvalidMethodExceptionif the event type is not supported

◆ msr() [2/2]

virtual MsrAccessEvent & introvirt::Event::msr ( )
pure virtual

Get MSR access event information.

Returns
The MSR event information
Exceptions
InvalidMethodExceptionif the event type is not supported

◆ os_type()

virtual OS introvirt::Event::os_type ( ) const
pure virtual
Returns
the OS that this event is for

◆ syscall() [1/2]

virtual const SystemCallEvent & introvirt::Event::syscall ( ) const
pure virtual

Get system call event information.

Valid for EVENT_FAST_SYSCALL and EVENT_FAST_SYSCALL_RET

Returns
The system call event information
Exceptions
InvalidMethodExceptionif the event type is not supported

Implemented in introvirt::windows::WindowsEvent.

◆ syscall() [2/2]

virtual SystemCallEvent & introvirt::Event::syscall ( )
pure virtual

Get system call event information.

Valid for EVENT_FAST_SYSCALL and EVENT_FAST_SYSCALL_RET

Returns
The system call event information
Exceptions
InvalidMethodExceptionif the event type is not supported

Implemented in introvirt::windows::WindowsEvent.

◆ task() [1/2]

virtual const EventTaskInformation & introvirt::Event::task ( ) const
pure virtual

Get the task information.

This is overriden by OS specific libraries (libwintrovirt) to provide task information.

Returns
The task information
Exceptions
InvalidMethodExceptionif process information is not available

Implemented in introvirt::windows::WindowsEvent.

◆ task() [2/2]

virtual EventTaskInformation & introvirt::Event::task ( )
pure virtual

Get the task information.

This is overriden by OS specific libraries (libwintrovirt) to provide task information.

Returns
The task information
Exceptions
InvalidMethodExceptionif process information is not available

Implemented in introvirt::windows::WindowsEvent.

Examples
ivcallmon.cc, and ivexec.cc.

◆ type()

virtual EventType introvirt::Event::type ( ) const
pure virtual

Get the type of event.

Returns
EventType
Examples
ivcallmon.cc, ivcr3mon.cc, ivexec.cc, ivprocmemdump.cc, ivreadfile.cc, ivwritefile.cc, and vmcall_interface.cc.

◆ vcpu() [1/2]

virtual const Vcpu & introvirt::Event::vcpu ( ) const
pure virtual

Get the Vcpu that triggered the event.

Returns
The Vcpu that triggered the event

◆ vcpu() [2/2]

virtual Vcpu & introvirt::Event::vcpu ( )
pure virtual

Get the Vcpu that triggered the event.

Returns
The Vcpu that triggered the event
Examples
ivcallmon.cc, and vmcall_interface.cc.

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