Changeset 51981 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Jul 11, 2014 6:16:19 AM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 94908
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/GIMHv.cpp
r51980 r51981 88 88 if (!pVM->gim.s.u32Version) 89 89 { 90 /* Basic features. */ 90 91 pHv->uBaseFeat = 0 91 92 //| GIM_HV_BASE_FEAT_VP_RUNTIME_MSR … … 104 105 ; 105 106 107 /* Miscellaneous features. */ 106 108 pHv->uMiscFeat = GIM_HV_MISC_FEAT_TIMER_FREQ; 107 109 110 /* Hypervisor recommendations to the guest. */ 108 111 pHv->uHyperHints = GIM_HV_HINT_MSR_FOR_SYS_RESET; 112 113 /* Hypervisor capabilities; features used by the hypervisor. */ 114 pHv->uHyperCaps = HMIsNestedPagingActive(pVM) ? GIM_HV_HOST_FEAT_NESTED_PAGING : 0; 115 pHv->uHyperCaps |= HMAreMsrBitmapsAvailable(pVM) ? GIM_HV_HOST_FEAT_MSR_BITMAP : 0; 109 116 } 110 117 … … 161 168 RT_ZERO(HyperLeaf); 162 169 HyperLeaf.uLeaf = UINT32_C(0x40000000); 163 HyperLeaf.uEax = UINT32_C(0x4000000 5); /* Minimum value for Hyper-V*/170 HyperLeaf.uEax = UINT32_C(0x40000006); /* Minimum value for Hyper-V is 0x40000005. */ 164 171 HyperLeaf.uEbx = 0x7263694D; /* 'Micr' */ 165 172 HyperLeaf.uEcx = 0x666F736F; /* 'osof' */ … … 203 210 AssertLogRelRCReturn(rc, rc); 204 211 212 HyperLeaf.uLeaf = UINT32_C(0x40000006); 213 HyperLeaf.uEax = pHv->uHyperCaps; 214 HyperLeaf.uEbx = 0; 215 HyperLeaf.uEcx = 0; 216 HyperLeaf.uEdx = 0; 217 rc = CPUMR3CpuIdInsert(pVM, &HyperLeaf); 218 AssertLogRelRCReturn(rc, rc); 219 205 220 /* 206 221 * Insert all MSR ranges of Hyper-V. … … 321 336 rc = SSMR3PutU32(pSSM, pcHv->uMiscFeat); AssertRCReturn(rc, rc); 322 337 rc = SSMR3PutU32(pSSM, pcHv->uHyperHints); AssertRCReturn(rc, rc); 338 rc = SSMR3PutU32(pSSM, pcHv->uHyperCaps); AssertRCReturn(rc, rc); 323 339 324 340 /* … … 384 400 rc = SSMR3GetU32(pSSM, &pHv->uMiscFeat); AssertRCReturn(rc, rc); 385 401 rc = SSMR3GetU32(pSSM, &pHv->uHyperHints); AssertRCReturn(rc, rc); 402 rc = SSMR3GetU32(pSSM, &pHv->uHyperCaps); AssertRCReturn(rc, rc); 386 403 387 404 /*
Note:
See TracChangeset
for help on using the changeset viewer.