libintrovirt v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
introvirt::x86 Namespace Reference

Classes for the x86 architecture. More...

Classes

class  Cr0
 The x86 Control Register 0. More...
 
class  Cr4
 The x86 Control Register 4. More...
 
class  Efer
 The x86 Extended Feature Enable Register. More...
 
class  Flags
 Handler for the x86 EFLAGS/RFLAGS register. More...
 
class  Idt
 Parser for the x86 interrupt descriptor table. More...
 
class  IdtEntry
 
class  Registers
 A class for holding x86 register state. More...
 
class  Segment
 Class to represent an x86 segment register. More...
 
class  SegmentDescriptorTable
 Class to parse a segment descriptor table. More...
 
class  SegmentSelector
 
class  Tss
 x86 Task State Segment More...
 

Enumerations

enum class  Exception {
  DIVIDE_ERROR = 0 , DEBUG = 1 , NMI = 2 , INT3 = 3 ,
  OVERFLOW = 4 , BOUNDS = 5 , INVALID_OP = 6 , NO_DEVICE = 7 ,
  DOUBLE_FAULT = 8 , COPRO_SEG = 9 , INVALID_TSS = 10 , NO_SEGMENT = 11 ,
  STACK_ERROR = 12 , GP_FAULT = 13 , PAGE_FAULT = 14 , SPURIOUS_INT = 15 ,
  COPRO_ERROR = 16 , ALIGNMENT_CHECK = 17 , MACHINE_CHECK = 18 , SIMD_ERROR = 19 ,
  UNKNOWN = -1
}
 x86 exception codes More...
 
enum  IdtEntryType {
  TASK_GATE_32 = 0x5 , INTERRUPT_GATE_16 = 0x6 , TRAP_GATE_16 = 0x7 , INTERRUPT_GATE_32 = 0xE ,
  TRAP_GATE_32 = 0xF
}
 
enum class  Msr : uint64_t {
  MSR_EFER = 0xc0000080 , MSR_STAR = 0xc0000081 , MSR_LSTAR = 0xc0000082 , MSR_CSTAR = 0xc0000083 ,
  MSR_SYSCALL_MASK = 0xc0000084 , MSR_FS_BASE = 0xc0000100 , MSR_GS_BASE = 0xc0000101 , MSR_KERNEL_GS_BASE = 0xc0000102 ,
  MSR_TSC_AUX = 0xc0000103 , MSR_IA32_SPEC_CTRL = 0x00000048 , MSR_IA32_PRED_CMD = 0x00000049 , MSR_IA32_SYSENTER_CS = 0x00000174 ,
  MSR_IA32_SYSENTER_ESP = 0x00000175 , MSR_IA32_SYSENTER_EIP = 0x00000176
}
 x86_64 MSR valueus TODO: Many values are missing from this enum More...
 

Functions

const std::string & to_string (Exception exception)
 Convert an Exception enum value to a std::string.
 
std::ostream & operator<< (std::ostream &os, Exception exception)
 Stream output operator for Exception.
 

Detailed Description

Classes for the x86 architecture.

Enumeration Type Documentation

◆ Exception

enum class introvirt::x86::Exception
strong

x86 exception codes

Enumerator
DIVIDE_ERROR 
DEBUG 
NMI 
INT3 
OVERFLOW 
BOUNDS 
INVALID_OP 
NO_DEVICE 
DOUBLE_FAULT 
COPRO_SEG 
INVALID_TSS 
NO_SEGMENT 
STACK_ERROR 
GP_FAULT 
PAGE_FAULT 
SPURIOUS_INT 
COPRO_ERROR 
ALIGNMENT_CHECK 
MACHINE_CHECK 
SIMD_ERROR 
UNKNOWN 

◆ IdtEntryType

Enumerator
TASK_GATE_32 
INTERRUPT_GATE_16 
TRAP_GATE_16 
INTERRUPT_GATE_32 
TRAP_GATE_32 

◆ Msr

enum class introvirt::x86::Msr : uint64_t
strong

x86_64 MSR valueus TODO: Many values are missing from this enum

Enumerator
MSR_EFER 
MSR_STAR 
MSR_LSTAR 
MSR_CSTAR 
MSR_SYSCALL_MASK 
MSR_FS_BASE 
MSR_GS_BASE 
MSR_KERNEL_GS_BASE 
MSR_TSC_AUX 
MSR_IA32_SPEC_CTRL 
MSR_IA32_PRED_CMD 
MSR_IA32_SYSENTER_CS 
MSR_IA32_SYSENTER_ESP 
MSR_IA32_SYSENTER_EIP 

Function Documentation

◆ operator<<()

std::ostream & introvirt::x86::operator<< ( std::ostream &  os,
Exception  exception 
)

Stream output operator for Exception.

Parameters
osThe output stream to write to
exceptionThe exception to write
Returns
A reference to the given os

◆ to_string()

const std::string & introvirt::x86::to_string ( Exception  exception)

Convert an Exception enum value to a std::string.

Parameters
exceptionThe exception to convert
Returns
A string value containing the Exception enum value