Changeset 101639 in vbox for trunk/include/VBox
- Timestamp:
- Oct 27, 2023 7:52:32 PM (15 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/vm.h
r100230 r101639 474 474 #if defined(VBOX_VMM_TARGET_ARMV8) 475 475 /** This action forces the VM to inject an IRQ into the guest. */ 476 # define VMCPU_FF_INTERRUPT_IRQ 477 # define VMCPU_FF_INTERRUPT_IRQ_BIT 476 # define VMCPU_FF_INTERRUPT_IRQ RT_BIT_64(VMCPU_FF_INTERRUPT_IRQ_BIT) 477 # define VMCPU_FF_INTERRUPT_IRQ_BIT 0 478 478 /** This action forces the VM to inject an FIQ into the guest. */ 479 # define VMCPU_FF_INTERRUPT_FIQ 480 # define VMCPU_FF_INTERRUPT_FIQ_BIT 479 # define VMCPU_FF_INTERRUPT_FIQ RT_BIT_64(VMCPU_FF_INTERRUPT_FIQ_BIT) 480 # define VMCPU_FF_INTERRUPT_FIQ_BIT 1 481 481 #else 482 482 /** This action forces the VM to check any pending interrupts on the APIC. */ 483 # define VMCPU_FF_INTERRUPT_APIC 484 # define VMCPU_FF_INTERRUPT_APIC_BIT 483 # define VMCPU_FF_INTERRUPT_APIC RT_BIT_64(VMCPU_FF_INTERRUPT_APIC_BIT) 484 # define VMCPU_FF_INTERRUPT_APIC_BIT 0 485 485 /** This action forces the VM to check any pending interrups on the PIC. */ 486 # define VMCPU_FF_INTERRUPT_PIC 487 # define VMCPU_FF_INTERRUPT_PIC_BIT 486 # define VMCPU_FF_INTERRUPT_PIC RT_BIT_64(VMCPU_FF_INTERRUPT_PIC_BIT) 487 # define VMCPU_FF_INTERRUPT_PIC_BIT 1 488 488 #endif 489 489 /** This action forces the VM to schedule and run pending timer (TM). … … 574 574 #define VMCPU_FF_VMX_PREEMPT_TIMER RT_BIT_64(VMCPU_FF_VMX_PREEMPT_TIMER_BIT) 575 575 #define VMCPU_FF_VMX_PREEMPT_TIMER_BIT 31 576 /** Pending MTF (Monitor Trap Flag) event. */ 576 /** Pending MTF (Monitor Trap Flag) event. 577 * @todo r=bird: Not part of VMCPU_FF_ALL_MASK, explain? */ 577 578 #define VMCPU_FF_VMX_MTF RT_BIT_64(VMCPU_FF_VMX_MTF_BIT) 578 579 #define VMCPU_FF_VMX_MTF_BIT 32 579 580 /** VMX APIC-write emulation pending. 580 581 * @todo possible candidate for internal EFLAGS, or maybe just a summary bit 581 * (see also VMCPU_FF_VMX_INT_WINDOW). */ 582 * (see also VMCPU_FF_VMX_INT_WINDOW). 583 * @todo r=bird: Not part of VMCPU_FF_ALL_MASK, explain? */ 582 584 #define VMCPU_FF_VMX_APIC_WRITE RT_BIT_64(VMCPU_FF_VMX_APIC_WRITE_BIT) 583 585 #define VMCPU_FF_VMX_APIC_WRITE_BIT 33 … … 590 592 * @todo Change the IEM side of this to not poll but to track down the places 591 593 * where it can be generated and set an internal EFLAGS bit that causes it 592 * to be checked out when finishing the current instruction. */ 594 * to be checked out when finishing the current instruction. 595 * @todo r=bird: Not part of VMCPU_FF_ALL_MASK, explain? */ 593 596 #define VMCPU_FF_VMX_INT_WINDOW RT_BIT_64(VMCPU_FF_VMX_INT_WINDOW_BIT) 594 597 #define VMCPU_FF_VMX_INT_WINDOW_BIT 34 595 598 /** VMX NMI-window event pending. 596 * Same "pending" comment and todo in VMCPU_FF_VMX_INT_WINDOW. */ 599 * Same "pending" comment and todo in VMCPU_FF_VMX_INT_WINDOW. 600 * @todo r=bird: Not part of VMCPU_FF_ALL_MASK, explain? */ 597 601 #define VMCPU_FF_VMX_NMI_WINDOW RT_BIT_64(VMCPU_FF_VMX_NMI_WINDOW_BIT) 598 602 #define VMCPU_FF_VMX_NMI_WINDOW_BIT 35 … … 626 630 /** High priority VMCPU pre-execution actions. */ 627 631 #if defined(VBOX_VMM_TARGET_ARMV8) 628 # define VMCPU_FF_HIGH_PRIORITY_PRE_MASK 629 630 #else 631 # define VMCPU_FF_HIGH_PRIORITY_PRE_MASK 632 633 634 635 632 # define VMCPU_FF_HIGH_PRIORITY_PRE_MASK ( VMCPU_FF_TIMER | VMCPU_FF_INTERRUPT_IRQ | VMCPU_FF_INTERRUPT_FIQ \ 633 | VMCPU_FF_DBGF ) 634 #else 635 # define VMCPU_FF_HIGH_PRIORITY_PRE_MASK ( VMCPU_FF_TIMER | VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_INTERRUPT_PIC \ 636 | VMCPU_FF_UPDATE_APIC | VMCPU_FF_DBGF \ 637 | VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL \ 638 | VMCPU_FF_INTERRUPT_NESTED_GUEST | VMCPU_FF_VMX_MTF | VMCPU_FF_VMX_APIC_WRITE \ 639 | VMCPU_FF_VMX_PREEMPT_TIMER | VMCPU_FF_VMX_NMI_WINDOW | VMCPU_FF_VMX_INT_WINDOW ) 636 640 #endif 637 641 … … 716 720 /** All the forced VM flags. */ 717 721 #define VM_FF_ALL_MASK (UINT32_MAX) 718 /** All the forced VMCPU flags. */ 722 /** All the forced VMCPU flags. 723 * @todo r=bird: VMCPU_FF_VMX_MTF, VMCPU_FF_VMX_APIC_WRITE, 724 * VMCPU_FF_VMX_INT_WINDOW and VMCPU_FF_VMX_NMI_WINDOW are not a part 725 * of this mask for some unexplained reason. */ 719 726 #define VMCPU_FF_ALL_MASK (UINT32_MAX) 720 727
Note:
See TracChangeset
for help on using the changeset viewer.