VirtualBox

Changeset 59004 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Dec 5, 2015 12:07:54 AM (9 years ago)
Author:
vboxsync
Message:

DBGF,VBoxVMM.d,HM: Split the exit probes and events into an intrusive version (INSTR_xxx) and a non-intrusive (EXIT_xxx) as we need to be able to trace named exits without causing more exits to occur.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/dbgf.h

    r59000 r59004  
    201201     * via DBGFR3xxx and queried via DBGFR3yyy.  */
    202202    DBGFEVENT_FIRST_SELECTABLE,
    203     /** Tripple fault.
    204      * @todo not yet implemented.  */
     203    /** Tripple fault. */
    205204    DBGFEVENT_TRIPLE_FAULT = DBGFEVENT_FIRST_SELECTABLE,
    206     DBGFEVENT_XCPT_DE,      /**< 0x00 - \#DE - Fault - NoErr - Integer divide error (zero/overflow). */
    207     DBGFEVENT_XCPT_DB,      /**< 0x01 - \#DB - trap/fault - NoErr - debug event. */
    208     DBGFEVENT_XCPT_02,      /**< 0x02 - Reserved for NMI, see interrupt events. */
    209     DBGFEVENT_XCPT_BP,      /**< 0x03 - \#BP - Trap  - NoErr - Breakpoint, INT 3 instruction. */
    210     DBGFEVENT_XCPT_OF,      /**< 0x04 - \#OF - Trap  - NoErr - Overflow, INTO instruction. */
    211     DBGFEVENT_XCPT_BR,      /**< 0x05 - \#BR - Fault - NoErr - BOUND Range Exceeded, BOUND instruction. */
    212     DBGFEVENT_XCPT_UD,      /**< 0x06 - \#UD - Fault - NoErr - Undefined(/Invalid) Opcode. */
    213     DBGFEVENT_XCPT_NM,      /**< 0x07 - \#NM - Fault - NoErr - Device not available, FP or (F)WAIT instruction. */
    214     DBGFEVENT_XCPT_DF,      /**< 0x08 - \#DF - Abort - Err=0 - Double fault. */
    215     DBGFEVENT_XCPT_09,      /**< 0x09 - Int9 - Fault - NoErr - Coprocessor Segment Overrun (obsolete). */
    216     DBGFEVENT_XCPT_TS,      /**< 0x0a - \#TS - Fault - ErrCd - Invalid TSS, Taskswitch or TSS access. */
    217     DBGFEVENT_XCPT_NP,      /**< 0x0b - \#NP - Fault - ErrCd - Segment not present. */
    218     DBGFEVENT_XCPT_SS,      /**< 0x0c - \#SS - Fault - ErrCd - Stack-Segment fault. */
    219     DBGFEVENT_XCPT_GP,      /**< 0x0d - \#GP - Fault - ErrCd - General protection fault. */
    220     DBGFEVENT_XCPT_PF,      /**< 0x0e - \#PF - Fault - ErrCd - Page fault. - interrupt gate!!! */
    221     DBGFEVENT_XCPT_0f,      /**< 0x0f - Rsvd - Resvd - Resvd - Intel Reserved. */
    222     DBGFEVENT_XCPT_MF,      /**< 0x10 - \#MF - Fault - NoErr - x86 FPU Floating-Point Error (Math fault), FP or (F)WAIT instruction. */
    223     DBGFEVENT_XCPT_AC,      /**< 0x11 - \#AC - Fault - Err=0 - Alignment Check. */
    224     DBGFEVENT_XCPT_MC,      /**< 0x12 - \#MC - Abort - NoErr - Machine Check. */
    225     DBGFEVENT_XCPT_XF,      /**< 0x13 - \#XF - Fault - NoErr - SIMD Floating-Point Exception. */
    226     DBGFEVENT_XCPT_VE,      /**< 0x14 - \#VE - Fault - Noerr - Virtualization exception. */
    227     DBGFEVENT_XCPT_15,      /**< 0x15 - Intel Reserved. */
    228     DBGFEVENT_XCPT_16,      /**< 0x16 - Intel Reserved. */
    229     DBGFEVENT_XCPT_17,      /**< 0x17 - Intel Reserved. */
    230     DBGFEVENT_XCPT_18,      /**< 0x18 - Intel Reserved. */
    231     DBGFEVENT_XCPT_19,      /**< 0x19 - Intel Reserved. */
    232     DBGFEVENT_XCPT_1a,      /**< 0x1a - Intel Reserved. */
    233     DBGFEVENT_XCPT_1b,      /**< 0x1b - Intel Reserved. */
    234     DBGFEVENT_XCPT_1c,      /**< 0x1c - Intel Reserved. */
    235     DBGFEVENT_XCPT_1d,      /**< 0x1d - Intel Reserved. */
    236     DBGFEVENT_XCPT_SX,      /**< 0x1e - \#SX - Fault - ErrCd - Security Exception. */
    237     DBGFEVENT_XCPT_1f,      /**< 0x1f - Intel Reserved. */
    238     /** The first exception event. */
    239     DBGFEVENT_XCPT_FIRST = DBGFEVENT_XCPT_DE,
    240     /** The last exception event. */
    241     DBGFEVENT_XCPT_LAST  = DBGFEVENT_XCPT_1f,
     205
     206    /** @name Exception events
     207     * The exception events normally represents guest exceptions, but depending on
     208     * the execution mode some virtualization exceptions may occure (no nested
     209     * paging, raw-mode, ++).  When necessary, we will request additional VM exits.
     210     * @{  */
     211    DBGFEVENT_XCPT_FIRST,           /**< The first exception event. */
     212    DBGFEVENT_XCPT_DE               /**< 0x00 - \#DE - Fault - NoErr - Integer divide error (zero/overflow). */
     213        = DBGFEVENT_XCPT_FIRST,
     214    DBGFEVENT_XCPT_DB,              /**< 0x01 - \#DB - trap/fault - NoErr - debug event. */
     215    DBGFEVENT_XCPT_02,              /**< 0x02 - Reserved for NMI, see interrupt events. */
     216    DBGFEVENT_XCPT_BP,              /**< 0x03 - \#BP - Trap  - NoErr - Breakpoint, INT 3 instruction. */
     217    DBGFEVENT_XCPT_OF,              /**< 0x04 - \#OF - Trap  - NoErr - Overflow, INTO instruction. */
     218    DBGFEVENT_XCPT_BR,              /**< 0x05 - \#BR - Fault - NoErr - BOUND Range Exceeded, BOUND instruction. */
     219    DBGFEVENT_XCPT_UD,              /**< 0x06 - \#UD - Fault - NoErr - Undefined(/Invalid) Opcode. */
     220    DBGFEVENT_XCPT_NM,              /**< 0x07 - \#NM - Fault - NoErr - Device not available, FP or (F)WAIT instruction. */
     221    DBGFEVENT_XCPT_DF,              /**< 0x08 - \#DF - Abort - Err=0 - Double fault. */
     222    DBGFEVENT_XCPT_09,              /**< 0x09 - Int9 - Fault - NoErr - Coprocessor Segment Overrun (obsolete). */
     223    DBGFEVENT_XCPT_TS,              /**< 0x0a - \#TS - Fault - ErrCd - Invalid TSS, Taskswitch or TSS access. */
     224    DBGFEVENT_XCPT_NP,              /**< 0x0b - \#NP - Fault - ErrCd - Segment not present. */
     225    DBGFEVENT_XCPT_SS,              /**< 0x0c - \#SS - Fault - ErrCd - Stack-Segment fault. */
     226    DBGFEVENT_XCPT_GP,              /**< 0x0d - \#GP - Fault - ErrCd - General protection fault. */
     227    DBGFEVENT_XCPT_PF,              /**< 0x0e - \#PF - Fault - ErrCd - Page fault. - interrupt gate!!! */
     228    DBGFEVENT_XCPT_0f,              /**< 0x0f - Rsvd - Resvd - Resvd - Intel Reserved. */
     229    DBGFEVENT_XCPT_MF,              /**< 0x10 - \#MF - Fault - NoErr - x86 FPU Floating-Point Error (Math fault), FP or (F)WAIT instruction. */
     230    DBGFEVENT_XCPT_AC,              /**< 0x11 - \#AC - Fault - Err=0 - Alignment Check. */
     231    DBGFEVENT_XCPT_MC,              /**< 0x12 - \#MC - Abort - NoErr - Machine Check. */
     232    DBGFEVENT_XCPT_XF,              /**< 0x13 - \#XF - Fault - NoErr - SIMD Floating-Point Exception. */
     233    DBGFEVENT_XCPT_VE,              /**< 0x14 - \#VE - Fault - Noerr - Virtualization exception. */
     234    DBGFEVENT_XCPT_15,              /**< 0x15 - Intel Reserved. */
     235    DBGFEVENT_XCPT_16,              /**< 0x16 - Intel Reserved. */
     236    DBGFEVENT_XCPT_17,              /**< 0x17 - Intel Reserved. */
     237    DBGFEVENT_XCPT_18,              /**< 0x18 - Intel Reserved. */
     238    DBGFEVENT_XCPT_19,              /**< 0x19 - Intel Reserved. */
     239    DBGFEVENT_XCPT_1a,              /**< 0x1a - Intel Reserved. */
     240    DBGFEVENT_XCPT_1b,              /**< 0x1b - Intel Reserved. */
     241    DBGFEVENT_XCPT_1c,              /**< 0x1c - Intel Reserved. */
     242    DBGFEVENT_XCPT_1d,              /**< 0x1d - Intel Reserved. */
     243    DBGFEVENT_XCPT_SX,              /**< 0x1e - \#SX - Fault - ErrCd - Security Exception. */
     244    DBGFEVENT_XCPT_1f,              /**< 0x1f - Intel Reserved. */
     245    DBGFEVENT_XCPT_LAST             /**< The last exception event. */
     246        = DBGFEVENT_XCPT_1f,
     247    /** @} */
     248
     249    /** @name Instruction events
     250     * The instruction events exerts all possible effort to intercept the
     251     * relevant instructions.  However, in some execution modes we won't be able
     252     * to catch them.  So it goes.
     253     * @{ */
     254    DBGFEVENT_INSTR_FIRST,          /**< The first VM instruction event. */
     255    DBGFEVENT_INSTR_HALT            /**< Instruction: HALT */
     256        = DBGFEVENT_INSTR_FIRST,
     257    DBGFEVENT_INSTR_MWAIT,          /**< Instruction: MWAIT */
     258    DBGFEVENT_INSTR_MONITOR,        /**< Instruction: MONITOR */
     259    DBGFEVENT_INSTR_CPUID,          /**< Instruction: CPUID (missing stuff in raw-mode). */
     260    DBGFEVENT_INSTR_INVD,           /**< Instruction: INVD */
     261    DBGFEVENT_INSTR_WBINVD,         /**< Instruction: WBINVD */
     262    DBGFEVENT_INSTR_INVLPG,         /**< Instruction: INVLPG */
     263    DBGFEVENT_INSTR_RDTSC,          /**< Instruction: RDTSC */
     264    DBGFEVENT_INSTR_RDTSCP,         /**< Instruction: RDTSCP */
     265    DBGFEVENT_INSTR_RDPMC,          /**< Instruction: RDPMC */
     266    DBGFEVENT_INSTR_RDMSR,          /**< Instruction: RDMSR */
     267    DBGFEVENT_INSTR_WRMSR,          /**< Instruction: WRMSR */
     268    DBGFEVENT_INSTR_CRX_READ,       /**< Instruction: CRx read instruction (missing smsw in raw-mode, and reads in general in VT-x). */
     269    DBGFEVENT_INSTR_CRX_WRITE,      /**< Instruction: CRx write */
     270    DBGFEVENT_INSTR_DRX_READ,       /**< Instruction: DRx read */
     271    DBGFEVENT_INSTR_DRX_WRITE,      /**< Instruction: DRx write */
     272    DBGFEVENT_INSTR_PAUSE,          /**< Instruction: PAUSE instruction (not in raw-mode). */
     273    DBGFEVENT_INSTR_XSETBV,         /**< Instruction: XSETBV */
     274    DBGFEVENT_INSTR_SIDT,           /**< Instruction: SIDT */
     275    DBGFEVENT_INSTR_LIDT,           /**< Instruction: LIDT */
     276    DBGFEVENT_INSTR_SGDT,           /**< Instruction: SGDT */
     277    DBGFEVENT_INSTR_LGDT,           /**< Instruction: LGDT */
     278    DBGFEVENT_INSTR_SLDT,           /**< Instruction: SLDT */
     279    DBGFEVENT_INSTR_LLDT,           /**< Instruction: LLDT */
     280    DBGFEVENT_INSTR_STR,            /**< Instruction: STR */
     281    DBGFEVENT_INSTR_LTR,            /**< Instruction: LTR */
     282    DBGFEVENT_INSTR_GETSEC,         /**< Instruction: GETSEC */
     283    DBGFEVENT_INSTR_RSM,            /**< Instruction: RSM */
     284    DBGFEVENT_INSTR_RDRAND,         /**< Instruction: RDRAND */
     285    DBGFEVENT_INSTR_RDSEED,         /**< Instruction: RDSEED */
     286    DBGFEVENT_INSTR_XSAVES,         /**< Instruction: XSAVES */
     287    DBGFEVENT_INSTR_XRSTORS,        /**< Instruction: XRSTORS */
     288    DBGFEVENT_INSTR_VMM_CALL,       /**< Instruction: VMCALL (intel) or VMMCALL (AMD) */
     289    DBGFEVENT_INSTR_LAST_COMMON     /**< Instruction: the last common event. */
     290        = DBGFEVENT_INSTR_VMM_CALL,
     291    DBGFEVENT_INSTR_VMX_FIRST,      /**< Instruction: VT-x - First. */
     292    DBGFEVENT_INSTR_VMX_VMCLEAR     /**< Instruction: VT-x VMCLEAR */
     293        = DBGFEVENT_INSTR_VMX_FIRST,
     294    DBGFEVENT_INSTR_VMX_VMLAUNCH,   /**< Instruction: VT-x VMLAUNCH */
     295    DBGFEVENT_INSTR_VMX_VMPTRLD,    /**< Instruction: VT-x VMPTRLD */
     296    DBGFEVENT_INSTR_VMX_VMPTRST,    /**< Instruction: VT-x VMPTRST */
     297    DBGFEVENT_INSTR_VMX_VMREAD,     /**< Instruction: VT-x VMREAD */
     298    DBGFEVENT_INSTR_VMX_VMRESUME,   /**< Instruction: VT-x VMRESUME */
     299    DBGFEVENT_INSTR_VMX_VMWRITE,    /**< Instruction: VT-x VMWRITE */
     300    DBGFEVENT_INSTR_VMX_VMXOFF,     /**< Instruction: VT-x VMXOFF */
     301    DBGFEVENT_INSTR_VMX_VMXON,      /**< Instruction: VT-x VMXON */
     302    DBGFEVENT_INSTR_VMX_VMFUNC,     /**< Instruction: VT-x VMFUNC */
     303    DBGFEVENT_INSTR_VMX_INVEPT,     /**< Instruction: VT-x INVEPT */
     304    DBGFEVENT_INSTR_VMX_INVVPID,    /**< Instruction: VT-x INVVPID */
     305    DBGFEVENT_INSTR_VMX_INVPCID,    /**< Instruction: VT-x INVPCID */
     306    DBGFEVENT_INSTR_VMX_LAST        /**< Instruction: VT-x - Last. */
     307        = DBGFEVENT_INSTR_VMX_INVPCID,
     308    DBGFEVENT_INSTR_SVM_FIRST,      /**< Instruction: AMD-V - first */
     309    DBGFEVENT_INSTR_SVM_VMRUN       /**< Instruction: AMD-V VMRUN */
     310    = DBGFEVENT_INSTR_SVM_FIRST,
     311    DBGFEVENT_INSTR_SVM_VMLOAD,     /**< Instruction: AMD-V VMLOAD */
     312    DBGFEVENT_INSTR_SVM_VMSAVE,     /**< Instruction: AMD-V VMSAVE */
     313    DBGFEVENT_INSTR_SVM_STGI,       /**< Instruction: AMD-V STGI */
     314    DBGFEVENT_INSTR_SVM_CLGI,       /**< Instruction: AMD-V CLGI */
     315    DBGFEVENT_INSTR_SVM_LAST        /**< Instruction: The last ADM-V VM exit event. */
     316        = DBGFEVENT_INSTR_SVM_CLGI,
     317    DBGFEVENT_INSTR_LAST            /**< Instruction: The last instruction event.   */
     318        = DBGFEVENT_INSTR_SVM_LAST,
     319    /** @} */
     320
     321
     322    /** @name VM exit events.
     323     * VM exits events for VT-x and AMD-V execution mode.  Many of the VM exits
     324     * behind these events are also directly translated into instruction events, but
     325     * the difference here is that the exit events will not try provoke the exits.
     326     * @{ */
     327    DBGFEVENT_EXIT_FIRST,               /**< The first VM exit event. */
     328    DBGFEVENT_EXIT_TASK_SWITCH          /**< Exit: Task switch. */
     329        = DBGFEVENT_EXIT_FIRST,
     330    DBGFEVENT_EXIT_HALT,                /**< Exit: HALT instruction. */
     331    DBGFEVENT_EXIT_MWAIT,               /**< Exit: MWAIT instruction. */
     332    DBGFEVENT_EXIT_MONITOR,             /**< Exit: MONITOR instruction. */
     333    DBGFEVENT_EXIT_CPUID,               /**< Exit: CPUID instruction (missing stuff in raw-mode). */
     334    DBGFEVENT_EXIT_INVD,                /**< Exit: INVD instruction. */
     335    DBGFEVENT_EXIT_WBINVD,              /**< Exit: WBINVD instruction. */
     336    DBGFEVENT_EXIT_INVLPG,              /**< Exit: INVLPG instruction. */
     337    DBGFEVENT_EXIT_RDTSC,               /**< Exit: RDTSC instruction. */
     338    DBGFEVENT_EXIT_RDTSCP,              /**< Exit: RDTSCP instruction. */
     339    DBGFEVENT_EXIT_RDPMC,               /**< Exit: RDPMC instruction. */
     340    DBGFEVENT_EXIT_RDMSR,               /**< Exit: RDMSR instruction. */
     341    DBGFEVENT_EXIT_WRMSR,               /**< Exit: WRMSR instruction. */
     342    DBGFEVENT_EXIT_CRX_READ,            /**< Exit: CRx read instruction (missing smsw in raw-mode, and reads in  general in VT-x). */
     343    DBGFEVENT_EXIT_CRX_WRITE,           /**< Exit: CRx write instruction. */
     344    DBGFEVENT_EXIT_DRX_READ,            /**< Exit: DRx read instruction. */
     345    DBGFEVENT_EXIT_DRX_WRITE,           /**< Exit: DRx write instruction. */
     346    DBGFEVENT_EXIT_PAUSE,               /**< Exit: PAUSE instruction (not in raw-mode). */
     347    DBGFEVENT_EXIT_XSETBV,              /**< Exit: XSETBV instruction. */
     348    DBGFEVENT_EXIT_SIDT,                /**< Exit: SIDT instruction. */
     349    DBGFEVENT_EXIT_LIDT,                /**< Exit: LIDT instruction. */
     350    DBGFEVENT_EXIT_SGDT,                /**< Exit: SGDT instruction. */
     351    DBGFEVENT_EXIT_LGDT,                /**< Exit: LGDT instruction. */
     352    DBGFEVENT_EXIT_SLDT,                /**< Exit: SLDT instruction. */
     353    DBGFEVENT_EXIT_LLDT,                /**< Exit: LLDT instruction. */
     354    DBGFEVENT_EXIT_STR,                 /**< Exit: STR instruction. */
     355    DBGFEVENT_EXIT_LTR,                 /**< Exit: LTR instruction. */
     356    DBGFEVENT_EXIT_GETSEC,              /**< Exit: GETSEC instruction. */
     357    DBGFEVENT_EXIT_RSM,                 /**< Exit: RSM instruction. */
     358    DBGFEVENT_EXIT_RDRAND,              /**< Exit: RDRAND instruction. */
     359    DBGFEVENT_EXIT_RDSEED,              /**< Exit: RDSEED instruction. */
     360    DBGFEVENT_EXIT_XSAVES,              /**< Exit: XSAVES instruction. */
     361    DBGFEVENT_EXIT_XRSTORS,             /**< Exit: XRSTORS instruction. */
     362    DBGFEVENT_EXIT_VMM_CALL,            /**< Exit: VMCALL (intel) or VMMCALL (AMD) instruction. */
     363    DBGFEVENT_EXIT_LAST_COMMON          /**< Exit: the last common event. */
     364        = DBGFEVENT_EXIT_VMM_CALL,
     365    DBGFEVENT_EXIT_VMX_FIRST,           /**< Exit: VT-x - First. */
     366    DBGFEVENT_EXIT_VMX_VMCLEAR          /**< Exit: VT-x VMCLEAR instruction. */
     367        = DBGFEVENT_EXIT_VMX_FIRST,
     368    DBGFEVENT_EXIT_VMX_VMLAUNCH,        /**< Exit: VT-x VMLAUNCH instruction. */
     369    DBGFEVENT_EXIT_VMX_VMPTRLD,         /**< Exit: VT-x VMPTRLD instruction. */
     370    DBGFEVENT_EXIT_VMX_VMPTRST,         /**< Exit: VT-x VMPTRST instruction. */
     371    DBGFEVENT_EXIT_VMX_VMREAD,          /**< Exit: VT-x VMREAD instruction. */
     372    DBGFEVENT_EXIT_VMX_VMRESUME,        /**< Exit: VT-x VMRESUME instruction. */
     373    DBGFEVENT_EXIT_VMX_VMWRITE,         /**< Exit: VT-x VMWRITE instruction. */
     374    DBGFEVENT_EXIT_VMX_VMXOFF,          /**< Exit: VT-x VMXOFF instruction. */
     375    DBGFEVENT_EXIT_VMX_VMXON,           /**< Exit: VT-x VMXON instruction. */
     376    DBGFEVENT_EXIT_VMX_VMFUNC,          /**< Exit: VT-x VMFUNC instruction. */
     377    DBGFEVENT_EXIT_VMX_INVEPT,          /**< Exit: VT-x INVEPT instruction. */
     378    DBGFEVENT_EXIT_VMX_INVVPID,         /**< Exit: VT-x INVVPID instruction. */
     379    DBGFEVENT_EXIT_VMX_INVPCID,         /**< Exit: VT-x INVPCID instruction. */
     380    DBGFEVENT_EXIT_VMX_EPT_VIOLATION,   /**< Exit: VT-x EPT violation. */
     381    DBGFEVENT_EXIT_VMX_EPT_MISCONFIG,   /**< Exit: VT-x EPT misconfiguration. */
     382    DBGFEVENT_EXIT_VMX_VAPIC_ACCESS,    /**< Exit: VT-x Virtual APIC page access. */
     383    DBGFEVENT_EXIT_VMX_VAPIC_WRITE,     /**< Exit: VT-x Virtual APIC write. */
     384    DBGFEVENT_EXIT_VMX_LAST             /**< Exit: VT-x - Last. */
     385        = DBGFEVENT_EXIT_VMX_VAPIC_WRITE,
     386    DBGFEVENT_EXIT_SVM_FIRST,           /**< Exit: AMD-V - first */
     387    DBGFEVENT_EXIT_SVM_VMRUN            /**< Exit: AMD-V VMRUN instruction. */
     388        = DBGFEVENT_EXIT_SVM_FIRST,
     389    DBGFEVENT_EXIT_SVM_VMLOAD,          /**< Exit: AMD-V VMLOAD instruction. */
     390    DBGFEVENT_EXIT_SVM_VMSAVE,          /**< Exit: AMD-V VMSAVE instruction. */
     391    DBGFEVENT_EXIT_SVM_STGI,            /**< Exit: AMD-V STGI instruction. */
     392    DBGFEVENT_EXIT_SVM_CLGI,            /**< Exit: AMD-V CLGI instruction. */
     393    DBGFEVENT_EXIT_SVM_LAST             /**< Exit: The last ADM-V VM exit event. */
     394        = DBGFEVENT_EXIT_SVM_CLGI,
     395    DBGFEVENT_EXIT_LAST                 /**< Exit: The last VM exit event. */
     396        = DBGFEVENT_EXIT_SVM_LAST,
     397    /** @} */
     398
     399
    242400    /** Access to an unassigned I/O port.
    243401     * @todo not yet implemented. */
     
    252410     * @todo not yet implemented.  */
    253411    DBGFEVENT_MEMORY_ROM_WRITE,
    254 
    255     /** The first VM exit event. */
    256     DBGFEVENT_EXIT_FIRST,
    257     /** Exit - Task switch.
    258      * @todo not yet implemented.  */
    259     DBGFEVENT_EXIT_TASK_SWITCH = DBGFEVENT_EXIT_FIRST,
    260     /** Exit - HALT instruction.
    261      * @todo not yet implemented.  */
    262     DBGFEVENT_EXIT_HALT,
    263     /** Exit - MWAIT instruction.
    264      * @todo not yet implemented.  */
    265     DBGFEVENT_EXIT_MWAIT,
    266     /** Exit - MONITOR instruction.
    267      * @todo not yet implemented.  */
    268     DBGFEVENT_EXIT_MONITOR,
    269     /** Exit - CPUID instruction (missing stuff in raw-mode).
    270      * @todo not yet implemented.  */
    271     DBGFEVENT_EXIT_CPUID,
    272     /** Exit - INVD instruction.
    273      * @todo not yet implemented.  */
    274     DBGFEVENT_EXIT_INVD,
    275     /** Exit - WBINVD instruction.
    276      * @todo not yet implemented.  */
    277     DBGFEVENT_EXIT_WBINVD,
    278     /** Exit - INVLPG instruction.
    279      * @todo not yet implemented.  */
    280     DBGFEVENT_EXIT_INVLPG,
    281     /** Exit - RDTSC instruction.
    282      * @todo not yet implemented.  */
    283     DBGFEVENT_EXIT_RDTSC,
    284     /** Exit - RDTSCP instruction.
    285      * @todo not yet implemented.  */
    286     DBGFEVENT_EXIT_RDTSCP,
    287     /** Exit - RDPMC instruction.
    288      * @todo not yet implemented.  */
    289     DBGFEVENT_EXIT_RDPMC,
    290     /** Exit - RDMSR instruction.
    291      * @todo not yet implemented.  */
    292     DBGFEVENT_EXIT_RDMSR,
    293     /** Exit - WRMSR instruction.
    294      * @todo not yet implemented.  */
    295     DBGFEVENT_EXIT_WRMSR,
    296     /** Exit - CRx read instruction (missing smsw in raw-mode, and reads in
    297      *  general in VT-x).
    298      * @todo not yet implemented.  */
    299     DBGFEVENT_EXIT_CRX_READ,
    300     /** Exit - CRx write instruction.
    301      * @todo not yet implemented.  */
    302     DBGFEVENT_EXIT_CRX_WRITE,
    303     /** Exit - DRx read instruction.
    304      * @todo not yet implemented.  */
    305     DBGFEVENT_EXIT_DRX_READ,
    306     /** Exit - DRx write instruction.
    307      * @todo not yet implemented.  */
    308     DBGFEVENT_EXIT_DRX_WRITE,
    309     /** Exit - PAUSE instruction (not in raw-mode).
    310      * @todo not yet implemented.  */
    311     DBGFEVENT_EXIT_PAUSE,
    312     /** Exit - XSETBV instruction.
    313      * @todo not yet implemented.  */
    314     DBGFEVENT_EXIT_XSETBV,
    315     /** Exit - SIDT instruction.
    316      * @todo not yet implemented.  */
    317     DBGFEVENT_EXIT_SIDT,
    318     /** Exit - LIDT instruction.
    319      * @todo not yet implemented.  */
    320     DBGFEVENT_EXIT_LIDT,
    321     /** Exit - SGDT instruction.
    322      * @todo not yet implemented.  */
    323     DBGFEVENT_EXIT_SGDT,
    324     /** Exit - LGDT instruction.
    325      * @todo not yet implemented.  */
    326     DBGFEVENT_EXIT_LGDT,
    327     /** Exit - SLDT instruction.
    328      * @todo not yet implemented.  */
    329     DBGFEVENT_EXIT_SLDT,
    330     /** Exit - LLDT instruction.
    331      * @todo not yet implemented.  */
    332     DBGFEVENT_EXIT_LLDT,
    333     /** Exit - STR instruction.
    334      * @todo not yet implemented.  */
    335     DBGFEVENT_EXIT_STR,
    336     /** Exit - LTR instruction.
    337      * @todo not yet implemented.  */
    338     DBGFEVENT_EXIT_LTR,
    339     /** Exit - GETSEC instruction.
    340      * @todo not yet implemented.  */
    341     DBGFEVENT_EXIT_GETSEC,
    342     /** Exit - RSM instruction.
    343      * @todo not yet implemented.  */
    344     DBGFEVENT_EXIT_RSM,
    345     /** Exit - RDRAND instruction.
    346      * @todo not yet implemented.  */
    347     DBGFEVENT_EXIT_RDRAND,
    348     /** Exit - RDSEED instruction.
    349      * @todo not yet implemented.  */
    350     DBGFEVENT_EXIT_RDSEED,
    351     /** Exit - XSAVES instruction.
    352      * @todo not yet implemented.  */
    353     DBGFEVENT_EXIT_XSAVES,
    354     /** Exit - XRSTORS instruction.
    355      * @todo not yet implemented.  */
    356     DBGFEVENT_EXIT_XRSTORS,
    357     /** Exit - VMCALL (intel) or VMMCALL (AMD) instruction.
    358      * @todo not yet implemented.  */
    359     DBGFEVENT_EXIT_VMM_CALL,
    360     /** Exit - the last common event. */
    361     DBGFEVENT_EXIT_LAST_COMMON = DBGFEVENT_EXIT_VMM_CALL,
    362 
    363     /** Exit - VT-x - First. */
    364     DBGFEVENT_EXIT_VMX_FIRST,
    365     /** Exit - VT-x VMCLEAR instruction.
    366      * @todo not yet implemented.  */
    367     DBGFEVENT_EXIT_VMX_VMCLEAR = DBGFEVENT_EXIT_VMX_FIRST,
    368     /** Exit - VT-x VMLAUNCH instruction.
    369      * @todo not yet implemented.  */
    370     DBGFEVENT_EXIT_VMX_VMLAUNCH,
    371     /** Exit - VT-x VMPTRLD instruction.
    372      * @todo not yet implemented.  */
    373     DBGFEVENT_EXIT_VMX_VMPTRLD,
    374     /** Exit - VT-x VMPTRST instruction.
    375      * @todo not yet implemented.  */
    376     DBGFEVENT_EXIT_VMX_VMPTRST,
    377     /** Exit - VT-x VMREAD instruction.
    378      * @todo not yet implemented.  */
    379     DBGFEVENT_EXIT_VMX_VMREAD,
    380     /** Exit - VT-x VMRESUME instruction.
    381      * @todo not yet implemented.  */
    382     DBGFEVENT_EXIT_VMX_VMRESUME,
    383     /** Exit - VT-x VMWRITE instruction.
    384      * @todo not yet implemented.  */
    385     DBGFEVENT_EXIT_VMX_VMWRITE,
    386     /** Exit - VT-x VMXOFF instruction.
    387      * @todo not yet implemented.  */
    388     DBGFEVENT_EXIT_VMX_VMXOFF,
    389     /** Exit - VT-x VMXON instruction.
    390      * @todo not yet implemented.  */
    391     DBGFEVENT_EXIT_VMX_VMXON,
    392     /** Exit - VT-x VMFUNC instruction.
    393      * @todo not yet implemented.  */
    394     DBGFEVENT_EXIT_VMX_VMFUNC,
    395     /** Exit - VT-x INVEPT instruction.
    396      * @todo not yet implemented.  */
    397     DBGFEVENT_EXIT_VMX_INVEPT,
    398     /** Exit - VT-x INVVPID instruction.
    399      * @todo not yet implemented.  */
    400     DBGFEVENT_EXIT_VMX_INVVPID,
    401     /** Exit - VT-x INVPCID instruction.
    402      * @todo not yet implemented.  */
    403     DBGFEVENT_EXIT_VMX_INVPCID,
    404     /** Exit - VT-x EPT violation. */
    405     DBGFEVENT_EXIT_VMX_EPT_VIOLATION,
    406     /** Exit - VT-x EPT misconfiguration. */
    407     DBGFEVENT_EXIT_VMX_EPT_MISCONFIG,
    408     /** Exit - VT-x Virtual APIC page access. */
    409     DBGFEVENT_EXIT_VMX_VAPIC_ACCESS,
    410     /** Exit - VT-x Virtual APIC write. */
    411     DBGFEVENT_EXIT_VMX_VAPIC_WRITE,
    412     /** Exit - VT-x - Last. */
    413     DBGFEVENT_EXIT_VMX_LAST = DBGFEVENT_EXIT_VMX_VAPIC_WRITE,
    414 
    415     /** Exit - AMD-V - first */
    416     DBGFEVENT_EXIT_SVM_FIRST,
    417     /** Exit - AMD-V VMRUN instruction.
    418      * @todo not yet implemented.  */
    419     DBGFEVENT_EXIT_SVM_VMRUN = DBGFEVENT_EXIT_SVM_FIRST,
    420     /** Exit - AMD-V VMLOAD instruction.
    421      * @todo not yet implemented.  */
    422     DBGFEVENT_EXIT_SVM_VMLOAD,
    423     /** Exit - AMD-V VMSAVE instruction.
    424      * @todo not yet implemented.  */
    425     DBGFEVENT_EXIT_SVM_VMSAVE,
    426     /** Exit - AMD-V STGI instruction.
    427      * @todo not yet implemented.  */
    428     DBGFEVENT_EXIT_SVM_STGI,
    429     /** Exit - AMD-V CLGI instruction.
    430      * @todo not yet implemented.  */
    431     DBGFEVENT_EXIT_SVM_CLGI,
    432     /** The last ADM-V VM exit event. */
    433     DBGFEVENT_EXIT_SVM_LAST = DBGFEVENT_EXIT_SVM_CLGI,
    434 
    435     /** The last VM exit event. */
    436     DBGFEVENT_EXIT_LAST = DBGFEVENT_EXIT_SVM_LAST,
    437412
    438413
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette