- Timestamp:
- Mar 8, 2018 5:31:35 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/GIMHvInternal.h
r69111 r71265 29 29 */ 30 30 /** Virtual processor runtime MSR available. */ 31 #define GIM_HV_BASE_FEAT_VP_RUNTIME_MSR RT_BIT(0)31 #define GIM_HV_BASE_FEAT_VP_RUNTIME_MSR RT_BIT(0) 32 32 /** Partition reference counter MSR available. */ 33 #define GIM_HV_BASE_FEAT_PART_TIME_REF_COUNT_MSR RT_BIT(1)33 #define GIM_HV_BASE_FEAT_PART_TIME_REF_COUNT_MSR RT_BIT(1) 34 34 /** Basic Synthetic Interrupt Controller MSRs available. */ 35 #define GIM_HV_BASE_FEAT_BASIC_SYNIC_MSRS RT_BIT(2)35 #define GIM_HV_BASE_FEAT_BASIC_SYNIC_MSRS RT_BIT(2) 36 36 /** Synthetic Timer MSRs available. */ 37 #define GIM_HV_BASE_FEAT_STIMER_MSRS RT_BIT(3)37 #define GIM_HV_BASE_FEAT_STIMER_MSRS RT_BIT(3) 38 38 /** APIC access MSRs (EOI, ICR, TPR) available. */ 39 #define GIM_HV_BASE_FEAT_APIC_ACCESS_MSRS RT_BIT(4)39 #define GIM_HV_BASE_FEAT_APIC_ACCESS_MSRS RT_BIT(4) 40 40 /** Hypercall MSRs available. */ 41 #define GIM_HV_BASE_FEAT_HYPERCALL_MSRS RT_BIT(5)41 #define GIM_HV_BASE_FEAT_HYPERCALL_MSRS RT_BIT(5) 42 42 /** Access to VCPU index MSR available. */ 43 #define GIM_HV_BASE_FEAT_VP_ID_MSR RT_BIT(6)43 #define GIM_HV_BASE_FEAT_VP_ID_MSR RT_BIT(6) 44 44 /** Virtual system reset MSR available. */ 45 #define GIM_HV_BASE_FEAT_VIRT_SYS_RESET_MSR RT_BIT(7)45 #define GIM_HV_BASE_FEAT_VIRT_SYS_RESET_MSR RT_BIT(7) 46 46 /** Statistic pages MSRs available. */ 47 #define GIM_HV_BASE_FEAT_STAT_PAGES_MSR RT_BIT(8)47 #define GIM_HV_BASE_FEAT_STAT_PAGES_MSR RT_BIT(8) 48 48 /** Paritition reference TSC MSR available. */ 49 #define GIM_HV_BASE_FEAT_PART_REF_TSC_MSR RT_BIT(9)49 #define GIM_HV_BASE_FEAT_PART_REF_TSC_MSR RT_BIT(9) 50 50 /** Virtual guest idle state MSR available. */ 51 #define GIM_HV_BASE_FEAT_GUEST_IDLE_STATE_MSR RT_BIT(10)51 #define GIM_HV_BASE_FEAT_GUEST_IDLE_STATE_MSR RT_BIT(10) 52 52 /** Timer frequency MSRs (TSC and APIC) available. */ 53 #define GIM_HV_BASE_FEAT_TIMER_FREQ_MSRS RT_BIT(11)53 #define GIM_HV_BASE_FEAT_TIMER_FREQ_MSRS RT_BIT(11) 54 54 /** Debug MSRs available. */ 55 #define GIM_HV_BASE_FEAT_DEBUG_MSRS RT_BIT(12)55 #define GIM_HV_BASE_FEAT_DEBUG_MSRS RT_BIT(12) 56 56 /** @} */ 57 57 … … 61 61 */ 62 62 /** Create partitions. */ 63 #define GIM_HV_PART_FLAGS_CREATE_PART RT_BIT(0)63 #define GIM_HV_PART_FLAGS_CREATE_PART RT_BIT(0) 64 64 /** Access partition Id. */ 65 #define GIM_HV_PART_FLAGS_ACCESS_PART_ID RT_BIT(1)65 #define GIM_HV_PART_FLAGS_ACCESS_PART_ID RT_BIT(1) 66 66 /** Access memory pool. */ 67 #define GIM_HV_PART_FLAGS_ACCESS_MEMORY_POOL RT_BIT(2)67 #define GIM_HV_PART_FLAGS_ACCESS_MEMORY_POOL RT_BIT(2) 68 68 /** Adjust message buffers. */ 69 #define GIM_HV_PART_FLAGS_ADJUST_MSG_BUFFERS RT_BIT(3)69 #define GIM_HV_PART_FLAGS_ADJUST_MSG_BUFFERS RT_BIT(3) 70 70 /** Post messages. */ 71 #define GIM_HV_PART_FLAGS_POST_MSGS RT_BIT(4)71 #define GIM_HV_PART_FLAGS_POST_MSGS RT_BIT(4) 72 72 /** Signal events. */ 73 #define GIM_HV_PART_FLAGS_SIGNAL_EVENTS RT_BIT(5)73 #define GIM_HV_PART_FLAGS_SIGNAL_EVENTS RT_BIT(5) 74 74 /** Create port. */ 75 #define GIM_HV_PART_FLAGS_CREATE_PORT RT_BIT(6)75 #define GIM_HV_PART_FLAGS_CREATE_PORT RT_BIT(6) 76 76 /** Connect port. */ 77 #define GIM_HV_PART_FLAGS_CONNECT_PORT RT_BIT(7)77 #define GIM_HV_PART_FLAGS_CONNECT_PORT RT_BIT(7) 78 78 /** Access statistics. */ 79 #define GIM_HV_PART_FLAGS_ACCESS_STATS RT_BIT(8)79 #define GIM_HV_PART_FLAGS_ACCESS_STATS RT_BIT(8) 80 80 /** Debugging.*/ 81 #define GIM_HV_PART_FLAGS_DEBUGGING RT_BIT(11)81 #define GIM_HV_PART_FLAGS_DEBUGGING RT_BIT(11) 82 82 /** CPU management. */ 83 #define GIM_HV_PART_FLAGS_CPU_MGMT RT_BIT(12)83 #define GIM_HV_PART_FLAGS_CPU_MGMT RT_BIT(12) 84 84 /** CPU profiler. */ 85 #define GIM_HV_PART_FLAGS_CPU_PROFILER RT_BIT(13)85 #define GIM_HV_PART_FLAGS_CPU_PROFILER RT_BIT(13) 86 86 /** Enable expanded stack walking. */ 87 #define GIM_HV_PART_FLAGS_EXPANDED_STACK_WALK RT_BIT(14) 87 #define GIM_HV_PART_FLAGS_EXPANDED_STACK_WALK RT_BIT(14) 88 /** Access VSM. */ 89 #define GIM_HV_PART_FLAGS_ACCESS_VSM RT_BIT(16) 90 /** Access VP registers. */ 91 #define GIM_HV_PART_FLAGS_ACCESS_VP_REGS RT_BIT(17) 92 /** Enable extended hypercalls. */ 93 #define GIM_HV_PART_FLAGS_EXTENDED_HYPERCALLS RT_BIT(20) 94 /** Start virtual processor. */ 95 #define GIM_HV_PART_FLAGS_START_VP RT_BIT(21) 88 96 /** @} */ 89 97 … … 92 100 */ 93 101 /** Maximum CPU power state C0. */ 94 #define GIM_HV_PM_MAX_CPU_POWER_STATE_C0 RT_BIT(0)102 #define GIM_HV_PM_MAX_CPU_POWER_STATE_C0 RT_BIT(0) 95 103 /** Maximum CPU power state C1. */ 96 #define GIM_HV_PM_MAX_CPU_POWER_STATE_C1 RT_BIT(1)104 #define GIM_HV_PM_MAX_CPU_POWER_STATE_C1 RT_BIT(1) 97 105 /** Maximum CPU power state C2. */ 98 #define GIM_HV_PM_MAX_CPU_POWER_STATE_C2 RT_BIT(2)106 #define GIM_HV_PM_MAX_CPU_POWER_STATE_C2 RT_BIT(2) 99 107 /** Maximum CPU power state C3. */ 100 #define GIM_HV_PM_MAX_CPU_POWER_STATE_C3 RT_BIT(3)108 #define GIM_HV_PM_MAX_CPU_POWER_STATE_C3 RT_BIT(3) 101 109 /** HPET is required to enter C3 power state. */ 102 #define GIM_HV_PM_HPET_REQD_FOR_C3 RT_BIT(4)110 #define GIM_HV_PM_HPET_REQD_FOR_C3 RT_BIT(4) 103 111 /** @} */ 104 112 … … 108 116 */ 109 117 /** MWAIT instruction available. */ 110 #define GIM_HV_MISC_FEAT_MWAIT RT_BIT(0)118 #define GIM_HV_MISC_FEAT_MWAIT RT_BIT(0) 111 119 /** Guest debugging support available. */ 112 #define GIM_HV_MISC_FEAT_GUEST_DEBUGGING RT_BIT(1)120 #define GIM_HV_MISC_FEAT_GUEST_DEBUGGING RT_BIT(1) 113 121 /** Performance monitor support is available. */ 114 #define GIM_HV_MISC_FEAT_PERF_MON RT_BIT(2)122 #define GIM_HV_MISC_FEAT_PERF_MON RT_BIT(2) 115 123 /** Support for physical CPU dynamic partitioning events. */ 116 #define GIM_HV_MISC_FEAT_PCPU_DYN_PART_EVENT RT_BIT(3)124 #define GIM_HV_MISC_FEAT_PCPU_DYN_PART_EVENT RT_BIT(3) 117 125 /** Support for passing hypercall input parameter block via XMM registers. */ 118 #define GIM_HV_MISC_FEAT_XMM_HYPERCALL_INPUT RT_BIT(4)126 #define GIM_HV_MISC_FEAT_XMM_HYPERCALL_INPUT RT_BIT(4) 119 127 /** Support for virtual guest idle state. */ 120 #define GIM_HV_MISC_FEAT_GUEST_IDLE_STATE RT_BIT(5)128 #define GIM_HV_MISC_FEAT_GUEST_IDLE_STATE RT_BIT(5) 121 129 /** Support for hypervisor sleep state. */ 122 #define GIM_HV_MISC_FEAT_HYPERVISOR_SLEEP_STATE RT_BIT(6)130 #define GIM_HV_MISC_FEAT_HYPERVISOR_SLEEP_STATE RT_BIT(6) 123 131 /** Support for querying NUMA distances. */ 124 #define GIM_HV_MISC_FEAT_QUERY_NUMA_DISTANCE RT_BIT(7)132 #define GIM_HV_MISC_FEAT_QUERY_NUMA_DISTANCE RT_BIT(7) 125 133 /** Support for determining timer frequencies. */ 126 #define GIM_HV_MISC_FEAT_TIMER_FREQ RT_BIT(8)134 #define GIM_HV_MISC_FEAT_TIMER_FREQ RT_BIT(8) 127 135 /** Support for injecting synthetic machine checks. */ 128 #define GIM_HV_MISC_FEAT_INJECT_SYNMC_XCPT RT_BIT(9)136 #define GIM_HV_MISC_FEAT_INJECT_SYNMC_XCPT RT_BIT(9) 129 137 /** Support for guest crash MSRs. */ 130 #define GIM_HV_MISC_FEAT_GUEST_CRASH_MSRS RT_BIT(10)138 #define GIM_HV_MISC_FEAT_GUEST_CRASH_MSRS RT_BIT(10) 131 139 /** Support for debug MSRs. */ 132 #define GIM_HV_MISC_FEAT_DEBUG_MSRS RT_BIT(11)140 #define GIM_HV_MISC_FEAT_DEBUG_MSRS RT_BIT(11) 133 141 /** Npiep1 Available */ /** @todo What the heck is this? */ 134 #define GIM_HV_MISC_FEAT_NPIEP1 RT_BIT(12)142 #define GIM_HV_MISC_FEAT_NPIEP1 RT_BIT(12) 135 143 /** Disable hypervisor available. */ 136 #define GIM_HV_MISC_FEAT_DISABLE_HYPERVISOR RT_BIT(13) 144 #define GIM_HV_MISC_FEAT_DISABLE_HYPERVISOR RT_BIT(13) 145 /** Extended GVA ranges for FlushVirtualAddressList available. */ 146 #define GIM_HV_MISC_FEAT_EXT_GVA_RANGE_FOR_FLUSH_VA_LIST RT_BIT(14) 147 /** Support for returning hypercall output via XMM registers. */ 148 #define GIM_HV_MISC_FEAT_HYPERCALL_OUTPUT_XMM RT_BIT(15) 149 /** Synthetic interrupt source polling mode available. */ 150 #define GIM_HV_MISC_FEAT_SINT_POLLING_MODE RT_BIT(17) 151 /** Hypercall MSR lock available. */ 152 #define GIM_HV_MISC_FEAT_HYPERCALL_MSR_LOCK RT_BIT(18) 153 /** Use direct synthetic MSRs. */ 154 #define GIM_HV_MISC_FEAT_USE_DIRECT_SYNTH_MSRS RT_BIT(19) 137 155 /** @} */ 138 156 … … 142 160 */ 143 161 /** Use hypercall for address space switches rather than MOV CR3. */ 144 #define GIM_HV_HINT_HYPERCALL_FOR_PROCESS_SWITCH RT_BIT(0)162 #define GIM_HV_HINT_HYPERCALL_FOR_PROCESS_SWITCH RT_BIT(0) 145 163 /** Use hypercall for local TLB flushes rather than INVLPG/MOV CR3. */ 146 #define GIM_HV_HINT_HYPERCALL_FOR_TLB_FLUSH RT_BIT(1)164 #define GIM_HV_HINT_HYPERCALL_FOR_TLB_FLUSH RT_BIT(1) 147 165 /** Use hypercall for inter-CPU TLB flushes rather than IPIs. */ 148 #define GIM_HV_HINT_HYPERCALL_FOR_TLB_SHOOTDOWN RT_BIT(2)166 #define GIM_HV_HINT_HYPERCALL_FOR_TLB_SHOOTDOWN RT_BIT(2) 149 167 /** Use MSRs for APIC access (EOI, ICR, TPR) rather than MMIO. */ 150 #define GIM_HV_HINT_MSR_FOR_APIC_ACCESS RT_BIT(3)168 #define GIM_HV_HINT_MSR_FOR_APIC_ACCESS RT_BIT(3) 151 169 /** Use hypervisor provided MSR for a system reset. */ 152 #define GIM_HV_HINT_MSR_FOR_SYS_RESET RT_BIT(4)170 #define GIM_HV_HINT_MSR_FOR_SYS_RESET RT_BIT(4) 153 171 /** Relax timer-related checks (watchdogs/deadman timeouts) that rely on 154 172 * timely deliver of external interrupts. */ 155 #define GIM_HV_HINT_RELAX_TIME_CHECKS RT_BIT(5) 156 /** Use DMA remapping. */ 157 #define GIM_HV_HINT_DMA_REMAPPING RT_BIT(6) 158 /** Use interrupt remapping. */ 159 #define GIM_HV_HINT_INTERRUPT_REMAPPING RT_BIT(7) 160 /** Use X2APIC MSRs rather than MMIO. */ 161 #define GIM_HV_HINT_X2APIC_MSRS RT_BIT(8) 162 /** Deprecate Auto EOI (end of interrupt). */ 163 #define GIM_HV_HINT_DEPRECATE_AUTO_EOI RT_BIT(9) 173 #define GIM_HV_HINT_RELAX_TIME_CHECKS RT_BIT(5) 174 /** Recommend using DMA remapping. */ 175 #define GIM_HV_HINT_DMA_REMAPPING RT_BIT(6) 176 /** Recommend using interrupt remapping. */ 177 #define GIM_HV_HINT_INTERRUPT_REMAPPING RT_BIT(7) 178 /** Recommend using X2APIC MSRs rather than MMIO. */ 179 #define GIM_HV_HINT_X2APIC_MSRS RT_BIT(8) 180 /** Recommend deprecating Auto EOI (end of interrupt). */ 181 #define GIM_HV_HINT_DEPRECATE_AUTO_EOI RT_BIT(9) 182 /** Recommend using SyntheticClusterIpi hypercall. */ 183 #define GIM_HV_HINT_SYNTH_CLUSTER_IPI_HYPERCALL RT_BIT(10) 184 /** Recommend using newer ExProcessMasks interface. */ 185 #define GIM_HV_HINT_EX_PROC_MASKS_INTERFACE RT_BIT(11) 186 /** Indicate that Hyper-V is nested within a Hyper-V partition. */ 187 #define GIM_HV_HINT_NESTED_HYPERV RT_BIT(12) 188 /** Recommend using INT for MBEC system calls. */ 189 #define GIM_HV_HINT_INT_FOR_MBEC_SYSCALLS RT_BIT(13) 190 /** Recommend using enlightened VMCS interfacea and nested enlightenments. */ 191 #define GIM_HV_HINT_NESTED_ENLIGHTENED_VMCS_INTERFACE RT_BIT(14) 164 192 /** @} */ 165 193 … … 170 198 */ 171 199 /** APIC overlay is used. */ 172 #define GIM_HV_HOST_FEAT_AVIC RT_BIT(0)200 #define GIM_HV_HOST_FEAT_AVIC RT_BIT(0) 173 201 /** MSR bitmaps is used. */ 174 #define GIM_HV_HOST_FEAT_MSR_BITMAP RT_BIT(1)202 #define GIM_HV_HOST_FEAT_MSR_BITMAP RT_BIT(1) 175 203 /** Architectural performance counter supported. */ 176 #define GIM_HV_HOST_FEAT_PERF_COUNTER RT_BIT(2)204 #define GIM_HV_HOST_FEAT_PERF_COUNTER RT_BIT(2) 177 205 /** Nested paging is used. */ 178 #define GIM_HV_HOST_FEAT_NESTED_PAGING RT_BIT(3)206 #define GIM_HV_HOST_FEAT_NESTED_PAGING RT_BIT(3) 179 207 /** DMA remapping is used. */ 180 #define GIM_HV_HOST_FEAT_DMA_REMAPPING RT_BIT(4)208 #define GIM_HV_HOST_FEAT_DMA_REMAPPING RT_BIT(4) 181 209 /** Interrupt remapping is used. */ 182 #define GIM_HV_HOST_FEAT_INTERRUPT_REMAPPING RT_BIT(5)210 #define GIM_HV_HOST_FEAT_INTERRUPT_REMAPPING RT_BIT(5) 183 211 /** Memory patrol scrubber is present. */ 184 #define GIM_HV_HOST_FEAT_MEM_PATROL_SCRUBBER RT_BIT(6) 212 #define GIM_HV_HOST_FEAT_MEM_PATROL_SCRUBBER RT_BIT(6) 213 /** DMA protection is in use. */ 214 #define GIM_HV_HOST_FEAT_DMA_PROT_IN_USE RT_BIT(7) 215 /** HPET is requested. */ 216 #define GIM_HV_HOST_FEAT_HPET_REQUESTED RT_BIT(8) 217 /** Synthetic timers are volatile. */ 218 #define GIM_HV_HOST_FEAT_STIMER_VOLATILE RT_BIT(9) 185 219 /** @} */ 186 220
Note:
See TracChangeset
for help on using the changeset viewer.