Changeset 74660 in vbox for trunk/include/VBox
- Timestamp:
- Oct 8, 2018 6:39:49 AM (6 years ago)
- Location:
- trunk/include/VBox/vmm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpumctx.h
r74542 r74660 644 644 uint32_t uMsrBitmapR3; 645 645 #endif 646 /** 0x378 - Padding. */ 647 uint8_t abPadding[0x3f0 - 0x378]; 646 /** 0x378 - The I/O bitmap - R0 ptr. */ 647 R0PTRTYPE(void *) pvIoBitmapR0; 648 #if HC_ARCH_BITS == 32 649 uint32_t uIoBitmapR0; 650 #endif 651 /** 0x380 - The I/O bitmap - R3 ptr. */ 652 R3PTRTYPE(void *) pvIoBitmapR3; 653 #if HC_ARCH_BITS == 32 654 uint32_t uIoBitmapR3; 655 #endif 656 /** 0x388 - Padding. */ 657 uint8_t abPadding[0x3f0 - 0x388]; 648 658 } vmx; 649 659 } CPUM_UNION_NM(s); … … 745 755 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pAutoMsrAreaR0, 0x358); 746 756 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pAutoMsrAreaR3, 0x360); 757 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvMsrBitmapR0, 0x368); 758 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvMsrBitmapR3, 0x370); 759 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvIoBitmapR0, 0x378); 760 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvIoBitmapR3, 0x380); 747 761 AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pVmcsR0, 8); 748 762 AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR0, 8); … … 752 766 AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pAutoMsrAreaR0, 8); 753 767 AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvMsrBitmapR0, 8); 768 AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvIoBitmapR0, 8); 754 769 AssertCompileMemberOffset(CPUMCTX, hwvirt.enmHwvirt, 0x3f0); 755 770 AssertCompileMemberOffset(CPUMCTX, hwvirt.fLocalForcedActions, 0x3f4); -
trunk/include/VBox/vmm/hm.h
r74545 r74660 150 150 VMM_INT_DECL(int) HMVmxEntryIntInfoInjectTrpmEvent(PVMCPU pVCpu, uint32_t uEntryIntInfo, uint32_t uErrCode, 151 151 uint32_t cbInstr, RTGCUINTPTR GCPtrFaultAddress); 152 VMM_INT_DECL(int) HMVmxGetMsrPermission(void *pvMsrBitmap, uint32_t idMsr, PVMXMSREXITREAD penmRead,152 VMM_INT_DECL(int) HMVmxGetMsrPermission(void const *pvMsrBitmap, uint32_t idMsr, PVMXMSREXITREAD penmRead, 153 153 PVMXMSREXITWRITE penmWrite); 154 VMM_INT_DECL(bool) HMVmxGetIoBitmapPermission(void const *pvIoBitmapA, void const *pvIoBitmapB, uint16_t uPort); 154 155 /** @} */ 155 156 -
trunk/include/VBox/vmm/hm_vmx.h
r74648 r74660 2500 2500 #define VMXINSTRID_VMREAD (0x12 | VMXINSTRID_VALID) 2501 2501 #define VMXINSTRID_VMWRITE (0x13 | VMXINSTRID_VALID | VMXINSTRID_MODRM_PRIMARY_OP_W) 2502 #define VMXINSTRID_IO_IN (0x14 | VMXINSTRID_VALID) 2503 #define VMXINSTRID_IO_OUT (0x15 | VMXINSTRID_VALID) 2502 2504 /** @} */ 2503 2505 … … 2726 2728 /** 16-31: IO Port (0-0xffff). */ 2727 2729 #define VMX_EXIT_QUAL_IO_PORT(a) (((a) >> 16) & 0xffff) 2728 /* Rest reserved. */ 2730 2731 /** Bit fields for Exit qualification for I/O instructions. */ 2732 #define VMX_BF_EXIT_QUAL_IO_WIDTH_SHIFT 0 2733 #define VMX_BF_EXIT_QUAL_IO_WIDTH_MASK UINT64_C(0x0000000000000007) 2734 #define VMX_BF_EXIT_QUAL_IO_DIRECTION_SHIFT 3 2735 #define VMX_BF_EXIT_QUAL_IO_DIRECTION_MASK UINT64_C(0x0000000000000008) 2736 #define VMX_BF_EXIT_QUAL_IO_IS_STRING_SHIFT 4 2737 #define VMX_BF_EXIT_QUAL_IO_IS_STRING_MASK UINT64_C(0x0000000000000010) 2738 #define VMX_BF_EXIT_QUAL_IO_IS_REP_SHIFT 5 2739 #define VMX_BF_EXIT_QUAL_IO_IS_REP_MASK UINT64_C(0x0000000000000020) 2740 #define VMX_BF_EXIT_QUAL_IO_ENCODING_SHIFT 6 2741 #define VMX_BF_EXIT_QUAL_IO_ENCODING_MASK UINT64_C(0x0000000000000040) 2742 #define VMX_BF_EXIT_QUAL_IO_RSVD_7_15_SHIFT 7 2743 #define VMX_BF_EXIT_QUAL_IO_RSVD_7_15_MASK UINT64_C(0x000000000000ff80) 2744 #define VMX_BF_EXIT_QUAL_IO_PORT_SHIFT 16 2745 #define VMX_BF_EXIT_QUAL_IO_PORT_MASK UINT64_C(0x00000000ffff0000) 2746 #define VMX_BF_EXIT_QUAL_IO_RSVD_32_63_SHIFT 32 2747 #define VMX_BF_EXIT_QUAL_IO_RSVD_32_63_MASK UINT64_C(0xffffffff00000000) 2748 RT_BF_ASSERT_COMPILE_CHECKS(VMX_BF_EXIT_QUAL_IO_, UINT64_C(0), UINT64_MAX, 2749 (WIDTH, DIRECTION, IS_STRING, IS_REP, ENCODING, RSVD_7_15, PORT, RSVD_32_63)); 2729 2750 /** @} */ 2730 2751 … … 3078 3099 #define VMX_V_MSR_BITMAP_PAGES 1 3079 3100 3101 /** The size of I/O bitmap A (in bytes). */ 3102 #define VMX_V_IO_BITMAP_A_SIZE X86_PAGE_4K_SIZE 3103 /** The size of I/O bitmap A (in pages). */ 3104 #define VMX_V_IO_BITMAP_A_PAGES 1 3105 3106 /** The size of I/O bitmap B (in bytes). */ 3107 #define VMX_V_IO_BITMAP_B_SIZE X86_PAGE_4K_SIZE 3108 /** The size of I/O bitmap B (in pages). */ 3109 #define VMX_V_IO_BITMAP_B_PAGES 1 3110 3080 3111 /** The size of the auto-load/store MSR area (in bytes). */ 3081 3112 #define VMX_V_AUTOMSR_AREA_SIZE ((512 * (VMX_V_AUTOMSR_COUNT_MAX + 1)) * sizeof(VMXAUTOMSR)) … … 3120 3151 typedef const VMXVEXITINFO *PCVMXVEXITINFO; 3121 3152 AssertCompileMemberAlignment(VMXVEXITINFO, u64Qual, 8); 3153 3122 3154 3123 3155 /**
Note:
See TracChangeset
for help on using the changeset viewer.