Changeset 61628 in vbox for trunk/include
- Timestamp:
- Jun 9, 2016 5:52:51 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 107976
- Location:
- trunk/include/VBox/vmm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/dbgf.h
r61570 r61628 411 411 DBGFEVENT_MEMORY_ROM_WRITE, 412 412 413 /** Windows guest reported BSOD via hyperv MSRs. */ 414 DBGFEVENT_BSOD_MSR, 415 /** Windows guest reported BSOD via EFI variables. */ 416 DBGFEVENT_BSOD_EFI, 413 417 414 418 /** End of valid event values. */ … … 524 528 VMMR3_INT_DECL(void) DBGFR3PowerOff(PVM pVM); 525 529 VMMR3_INT_DECL(void) DBGFR3Relocate(PVM pVM, RTGCINTPTR offDelta); 526 VMMR3_INT_DECL(int) DBGFR3VMMForcedAction(PVM pVM );530 VMMR3_INT_DECL(int) DBGFR3VMMForcedAction(PVM pVM, PVMCPU pVCpu); 527 531 VMMR3_INT_DECL(VBOXSTRICTRC) DBGFR3EventHandlePending(PVM pVM, PVMCPU pVCpu); 528 532 VMMR3DECL(int) DBGFR3Event(PVM pVM, DBGFEVENTTYPE enmEvent); -
trunk/include/VBox/vmm/vm.h
r61150 r61628 324 324 * 325 325 * Available VMCPU bits: 326 * 1 0, 11, 14, 15, 31326 * 11, 14, 15, 31 327 327 * 328 328 * @todo If we run low on VMCPU, we may consider merging the SELM bits … … 407 407 * interrupts as pending interrupts. */ 408 408 #define VMCPU_FF_UPDATE_APIC RT_BIT_32(VMCPU_FF_UPDATE_APIC_BIT) 409 410 409 /** This action forces the VM to service pending requests from other 411 410 * thread or requests which must be executed in another context. */ 412 411 #define VMCPU_FF_REQUEST RT_BIT_32(9) 412 /** Pending DBGF event (alternative to passing VINF_EM_DBG_EVENT around). */ 413 #define VMCPU_FF_DBGF RT_BIT_32(VMCPU_FF_DBGF_BIT) 414 /** The bit number for VMCPU_FF_DBGF. */ 415 #define VMCPU_FF_DBGF_BIT 10 413 416 /** This action forces the VM to service any pending updates to CR3 (used only 414 417 * by HM). */ … … 468 471 469 472 /** Externally VM forced actions. Used to quit the idle/wait loop. */ 470 #define VM_FF_EXTERNAL_SUSPENDED_MASK ( VM_FF_CHECK_VM_STATE | VM_FF_DBGF | VM_FF_REQUEST | VM_FF_EMT_RENDEZVOUS)473 #define VM_FF_EXTERNAL_SUSPENDED_MASK ( VM_FF_CHECK_VM_STATE | VM_FF_DBGF | VM_FF_REQUEST | VM_FF_EMT_RENDEZVOUS ) 471 474 /** Externally VMCPU forced actions. Used to quit the idle/wait loop. */ 472 #define VMCPU_FF_EXTERNAL_SUSPENDED_MASK ( VMCPU_FF_REQUEST)475 #define VMCPU_FF_EXTERNAL_SUSPENDED_MASK ( VMCPU_FF_REQUEST | VMCPU_FF_DBGF ) 473 476 474 477 /** Externally forced VM actions. Used to quit the idle/wait loop. */ 475 #define VM_FF_EXTERNAL_HALTED_MASK ( VM_FF_CHECK_VM_STATE | VM_FF_DBGF | VM_FF_REQUEST \476 | VM_FF_PDM_QUEUES | VM_FF_PDM_DMA | VM_FF_EMT_RENDEZVOUS)478 #define VM_FF_EXTERNAL_HALTED_MASK ( VM_FF_CHECK_VM_STATE | VM_FF_DBGF | VM_FF_REQUEST \ 479 | VM_FF_PDM_QUEUES | VM_FF_PDM_DMA | VM_FF_EMT_RENDEZVOUS ) 477 480 /** Externally forced VMCPU actions. Used to quit the idle/wait loop. */ 478 481 #define VMCPU_FF_EXTERNAL_HALTED_MASK ( VMCPU_FF_UPDATE_APIC | VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_INTERRUPT_PIC \ 479 | VMCPU_FF_REQUEST | VMCPU_FF_INTERRUPT_NMI | VMCPU_FF_INTERRUPT_SMI \480 | VMCPU_FF_UNHALT | VMCPU_FF_TIMER )482 | VMCPU_FF_REQUEST | VMCPU_FF_INTERRUPT_NMI | VMCPU_FF_INTERRUPT_SMI \ 483 | VMCPU_FF_UNHALT | VMCPU_FF_TIMER | VMCPU_FF_DBGF ) 481 484 482 485 /** High priority VM pre-execution actions. */ 483 #define VM_FF_HIGH_PRIORITY_PRE_MASK ( VM_FF_CHECK_VM_STATE | VM_FF_DBGF | VM_FF_TM_VIRTUAL_SYNC \484 | VM_FF_DEBUG_SUSPEND | VM_FF_PGM_NEED_HANDY_PAGES | VM_FF_PGM_NO_MEMORY \485 | VM_FF_EMT_RENDEZVOUS )486 #define VM_FF_HIGH_PRIORITY_PRE_MASK ( VM_FF_CHECK_VM_STATE | VM_FF_DBGF | VM_FF_TM_VIRTUAL_SYNC \ 487 | VM_FF_DEBUG_SUSPEND | VM_FF_PGM_NEED_HANDY_PAGES | VM_FF_PGM_NO_MEMORY \ 488 | VM_FF_EMT_RENDEZVOUS ) 486 489 /** High priority VMCPU pre-execution actions. */ 487 #define VMCPU_FF_HIGH_PRIORITY_PRE_MASK ( VMCPU_FF_TIMER | VMCPU_FF_INTERRUPT_APIC| VMCPU_FF_INTERRUPT_PIC \488 | VMCPU_FF_UPDATE_APIC \490 #define VMCPU_FF_HIGH_PRIORITY_PRE_MASK ( VMCPU_FF_TIMER | VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_INTERRUPT_PIC \ 491 | VMCPU_FF_UPDATE_APIC | VMCPU_FF_INHIBIT_INTERRUPTS | VMCPU_FF_DBGF \ 489 492 | VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL \ 490 | VMCPU_FF_INHIBIT_INTERRUPTS \491 493 | VM_WHEN_RAW_MODE( VMCPU_FF_SELM_SYNC_TSS | VMCPU_FF_TRPM_SYNC_IDT \ 492 494 | VMCPU_FF_SELM_SYNC_GDT | VMCPU_FF_SELM_SYNC_LDT, 0 ) ) 493 495 494 496 /** High priority VM pre raw-mode execution mask. */ 495 #define VM_FF_HIGH_PRIORITY_PRE_RAW_MASK ( VM_FF_PGM_NEED_HANDY_PAGES | VM_FF_PGM_NO_MEMORY)497 #define VM_FF_HIGH_PRIORITY_PRE_RAW_MASK ( VM_FF_PGM_NEED_HANDY_PAGES | VM_FF_PGM_NO_MEMORY ) 496 498 /** High priority VMCPU pre raw-mode execution mask. */ 497 499 #define VMCPU_FF_HIGH_PRIORITY_PRE_RAW_MASK ( VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL \ 498 500 | VMCPU_FF_INHIBIT_INTERRUPTS \ 499 | VM_WHEN_RAW_MODE( VMCPU_FF_SELM_SYNC_TSS | VMCPU_FF_TRPM_SYNC_IDT \501 | VM_WHEN_RAW_MODE( VMCPU_FF_SELM_SYNC_TSS | VMCPU_FF_TRPM_SYNC_IDT \ 500 502 | VMCPU_FF_SELM_SYNC_GDT | VMCPU_FF_SELM_SYNC_LDT, 0) ) 501 503 502 504 /** High priority post-execution actions. */ 503 #define VM_FF_HIGH_PRIORITY_POST_MASK ( VM_FF_PGM_NO_MEMORY)505 #define VM_FF_HIGH_PRIORITY_POST_MASK ( VM_FF_PGM_NO_MEMORY ) 504 506 /** High priority post-execution actions. */ 505 #define VMCPU_FF_HIGH_PRIORITY_POST_MASK ( VMCPU_FF_PDM_CRITSECT | VM_WHEN_RAW_MODE(VMCPU_FF_CSAM_PENDING_ACTION, 0) \507 #define VMCPU_FF_HIGH_PRIORITY_POST_MASK ( VMCPU_FF_PDM_CRITSECT | VM_WHEN_RAW_MODE(VMCPU_FF_CSAM_PENDING_ACTION, 0) \ 506 508 | VMCPU_FF_HM_UPDATE_CR3 | VMCPU_FF_HM_UPDATE_PAE_PDPES \ 507 | VMCPU_FF_IEM | VMCPU_FF_IOM )509 | VMCPU_FF_IEM | VMCPU_FF_IOM ) 508 510 509 511 /** Normal priority VM post-execution actions. */ 510 512 #define VM_FF_NORMAL_PRIORITY_POST_MASK ( VM_FF_CHECK_VM_STATE | VM_FF_DBGF | VM_FF_RESET \ 511 | VM_FF_PGM_NO_MEMORY | VM_FF_EMT_RENDEZVOUS)513 | VM_FF_PGM_NO_MEMORY | VM_FF_EMT_RENDEZVOUS) 512 514 /** Normal priority VMCPU post-execution actions. */ 513 #define VMCPU_FF_NORMAL_PRIORITY_POST_MASK VM_WHEN_RAW_MODE(VMCPU_FF_CSAM_SCAN_PAGE, 0)515 #define VMCPU_FF_NORMAL_PRIORITY_POST_MASK ( VM_WHEN_RAW_MODE(VMCPU_FF_CSAM_SCAN_PAGE, 0) | VMCPU_FF_DBGF ) 514 516 515 517 /** Normal priority VM actions. */ 516 #define VM_FF_NORMAL_PRIORITY_MASK ( VM_FF_REQUEST | VM_FF_PDM_QUEUES | VM_FF_PDM_DMA | VM_FF_REM_HANDLER_NOTIFY\517 | VM_FF_ EMT_RENDEZVOUS)518 #define VM_FF_NORMAL_PRIORITY_MASK ( VM_FF_REQUEST | VM_FF_PDM_QUEUES | VM_FF_PDM_DMA \ 519 | VM_FF_REM_HANDLER_NOTIFY | VM_FF_EMT_RENDEZVOUS) 518 520 /** Normal priority VMCPU actions. */ 519 #define VMCPU_FF_NORMAL_PRIORITY_MASK ( VMCPU_FF_REQUEST | VMCPU_FF_UNHALT)521 #define VMCPU_FF_NORMAL_PRIORITY_MASK ( VMCPU_FF_REQUEST | VMCPU_FF_UNHALT ) 520 522 521 523 /** Flags to clear before resuming guest execution. */ 522 #define VMCPU_FF_RESUME_GUEST_MASK ( VMCPU_FF_TO_R3)524 #define VMCPU_FF_RESUME_GUEST_MASK ( VMCPU_FF_TO_R3 ) 523 525 524 526 525 527 /** VM flags that cause the REP[|NE|E] STRINS loops to yield immediately. */ 526 #define VM_FF_HIGH_PRIORITY_POST_REPSTR_MASK ( VM_FF_TM_VIRTUAL_SYNC | VM_FF_PGM_NEED_HANDY_PAGES | VM_FF_PGM_NO_MEMORY \527 | VM_FF_EMT_RENDEZVOUS | VM_FF_RESET | VM_FF_PGM_POOL_FLUSH_PENDING)528 #define VM_FF_HIGH_PRIORITY_POST_REPSTR_MASK ( VM_FF_TM_VIRTUAL_SYNC | VM_FF_PGM_NEED_HANDY_PAGES | VM_FF_PGM_NO_MEMORY \ 529 | VM_FF_EMT_RENDEZVOUS | VM_FF_PGM_POOL_FLUSH_PENDING | VM_FF_RESET) 528 530 /** VM flags that cause the REP[|NE|E] STRINS loops to yield. */ 529 531 #define VM_FF_YIELD_REPSTR_MASK ( VM_FF_HIGH_PRIORITY_POST_REPSTR_MASK \ … … 531 533 /** VMCPU flags that cause the REP[|NE|E] STRINS loops to yield immediately. */ 532 534 #ifdef IN_RING3 533 # define VMCPU_FF_HIGH_PRIORITY_POST_REPSTR_MASK ( VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL )535 # define VMCPU_FF_HIGH_PRIORITY_POST_REPSTR_MASK ( VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL | VMCPU_FF_DBGF ) 534 536 #else 535 537 # define VMCPU_FF_HIGH_PRIORITY_POST_REPSTR_MASK ( VMCPU_FF_TO_R3 | VMCPU_FF_IEM | VMCPU_FF_IOM | VMCPU_FF_PGM_SYNC_CR3 \ 536 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL )538 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL | VMCPU_FF_DBGF ) 537 539 #endif 538 540 /** VMCPU flags that cause the REP[|NE|E] STRINS loops to yield, interrupts … … 557 559 #define VM_FF_HP_R0_PRE_HM_MASK (VM_FF_HM_TO_R3_MASK | VM_FF_REQUEST | VM_FF_PGM_POOL_FLUSH_PENDING | VM_FF_PDM_DMA) 558 560 /** High priority ring-0 VMCPU pre HM-mode execution mask. */ 559 #define VMCPU_FF_HP_R0_PRE_HM_MASK ( VMCPU_FF_HM_TO_R3_MASK | VMCPU_FF_PGM_SYNC_CR3 \561 #define VMCPU_FF_HP_R0_PRE_HM_MASK ( VMCPU_FF_HM_TO_R3_MASK | VMCPU_FF_PGM_SYNC_CR3 \ 560 562 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL | VMCPU_FF_REQUEST) 561 563 /** High priority ring-0 VM pre HM-mode execution mask, single stepping. */
Note:
See TracChangeset
for help on using the changeset viewer.