- Timestamp:
- Mar 15, 2019 8:18:52 AM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 129360
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/HMInternal.h
r77714 r77715 712 712 typedef const VMXVMCSCTLSCACHE *PCVMXVMCSCTLSCACHE; 713 713 AssertCompileSizeAlignment(VMXVMCSCTLSCACHE, 8); 714 715 /** 716 * VMX VMCS information. 717 * 718 * This structure provides information maintained for and during the executing of a 719 * guest (or nested-guest) VMCS (VM control structure) using hardware-assisted VMX. 720 */ 721 typedef struct VMXVMCSINFO 722 { 723 /** @name VMCS and related data structures. 724 * @{ */ 725 /** Host-physical address of the VMCS. */ 726 RTHCPHYS HCPhysVmcs; 727 /** R0 memory object for the VMCS. */ 728 RTR0MEMOBJ hMemObjVmcs; 729 /** Host-virtual address of the VMCS. */ 730 R0PTRTYPE(void *) pvVmcs; 731 732 /** Host-physical address of the virtual APIC page. */ 733 RTHCPHYS HCPhysVirtApic; 734 /** Padding. */ 735 R0PTRTYPE(void *) pvAlignment0; 736 /** Host-virtual address of the virtual-APIC page. */ 737 R0PTRTYPE(uint8_t *) pbVirtApic; 738 739 /** Host-physical address of the MSR bitmap. */ 740 RTHCPHYS HCPhysMsrBitmap; 741 /** R0 memory object for the MSR bitmap. */ 742 RTR0MEMOBJ hMemObjMsrBitmap; 743 /** Host-virtual address of the MSR bitmap. */ 744 R0PTRTYPE(void *) pvMsrBitmap; 745 746 /** Host-physical address of the VM-entry MSR-load and VM-exit MSR-store area. */ 747 RTHCPHYS HCPhysGuestMsr; 748 /** R0 memory object of the VM-entry MSR-load and VM-exit MSR-store area. */ 749 RTR0MEMOBJ hMemObjGuestMsr; 750 /** Host-virtual address of the VM-entry MSR-load and VM-exit MSR-store area. */ 751 R0PTRTYPE(void *) pvGuestMsr; 752 753 /** Host-physical address of the VM-exit MSR-load area. */ 754 RTHCPHYS HCPhysHostMsr; 755 /** R0 memory object for the VM-exit MSR-load area. */ 756 RTR0MEMOBJ hMemObjHostMsr; 757 /** Host-virtual address of the VM-exit MSR-load area. */ 758 R0PTRTYPE(void *) pvHostMsr; 759 760 /** Host-physical address of the EPTP. */ 761 RTHCPHYS HCPhysEPTP; 762 /** @} */ 763 764 /** @name Auxiliary information. 765 * @{ */ 766 /** Number of guest/host MSR pairs in the auto-load/store area. */ 767 uint32_t cMsrs; 768 /** The VMCS state, see VMX_V_VMCS_STATE_XXX. */ 769 uint32_t fVmcsState; 770 /** @} */ 771 772 /** @name Cache of execution related VMCS fields. 773 * @{ */ 774 /** Pin-based VM-execution controls. */ 775 uint32_t u32PinCtls; 776 /** Processor-based VM-execution controls. */ 777 uint32_t u32ProcCtls; 778 /** Secondary processor-based VM-execution controls. */ 779 uint32_t u32ProcCtls2; 780 /** VM-entry controls. */ 781 uint32_t u32EntryCtls; 782 /** VM-exit controls. */ 783 uint32_t u32ExitCtls; 784 /** CR0 guest/host mask. */ 785 uint32_t u32Cr0Mask; 786 /** CR4 guset/host mask. */ 787 uint32_t u32Cr4Mask; 788 /** Exception bitmap. */ 789 uint32_t u32XcptBitmap; 790 /** TSC offset. */ 791 uint64_t u64TscOffset; 792 /** @} */ 793 794 /** Padding. */ 795 uint64_t u64Padding[4]; 796 } VMXVMCSINFO; 797 /** Pointer to a VMXVMCSINFO struct. */ 798 typedef VMXVMCSINFO *PVMXVMCSINFO; 799 /** Pointer to a VMXVMCSINFO struct. */ 800 typedef const VMXVMCSINFO *PCVMXVMCSINFO; 801 AssertCompileSizeAlignment(VMXVMCSINFO, 8); 802 AssertCompileSize(VMXVMCSINFO, 208); 714 803 715 804 /**
Note:
See TracChangeset
for help on using the changeset viewer.