Changeset 52090 in vbox for trunk/src/VBox/Main/src-server
- Timestamp:
- Jul 18, 2014 6:37:32 AM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 95097
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-server/MachineImpl.cpp
r51903 r52090 1237 1237 } 1238 1238 1239 return S_OK; 1240 } 1241 1242 HRESULT Machine::getEffectiveParavirtProvider(ParavirtProvider_T *aParavirtProvider) 1243 { 1244 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 1245 1246 *aParavirtProvider = mHWData->mParavirtProvider; 1247 switch (mHWData->mParavirtProvider) 1248 { 1249 case ParavirtProvider_None: 1250 case ParavirtProvider_HyperV: 1251 case ParavirtProvider_Minimal: 1252 break; 1253 1254 /* Resolve dynamic provider types to the effective types. */ 1255 default: 1256 { 1257 ComPtr<IGuestOSType> ptrGuestOSType; 1258 HRESULT hrc2 = mParent->GetGuestOSType(Bstr(mUserData->s.strOsType).raw(), ptrGuestOSType.asOutParam()); 1259 AssertMsgReturn(SUCCEEDED(hrc2), ("Failed to get guest OS type. hrc2=%Rhrc\n", hrc2), hrc2); 1260 1261 Bstr guestTypeFamilyId; 1262 hrc2 = ptrGuestOSType->COMGETTER(FamilyId)(guestTypeFamilyId.asOutParam()); 1263 AssertMsgReturn(SUCCEEDED(hrc2), ("Failed to get guest family. hrc2=%Rhrc\n", hrc2), hrc2); 1264 BOOL fOsXGuest = guestTypeFamilyId == Bstr("MacOS"); 1265 1266 switch (mHWData->mParavirtProvider) 1267 { 1268 case ParavirtProvider_Legacy: 1269 { 1270 if (fOsXGuest) 1271 *aParavirtProvider = ParavirtProvider_Minimal; 1272 else 1273 *aParavirtProvider = ParavirtProvider_None; 1274 break; 1275 } 1276 1277 case ParavirtProvider_Default: 1278 { 1279 if (fOsXGuest) 1280 *aParavirtProvider = ParavirtProvider_Minimal; 1281 #if 0 /* Activate this soon. */ 1282 else if ( mUserData->s.strOsType == "Windows81" 1283 || mUserData->s.strOsType == "Windows81_64" 1284 || mUserData->s.strOsType == "Windows8" 1285 || mUserData->s.strOsType == "Windows8_64" 1286 || mUserData->s.strOsType == "Windows7" 1287 || mUserData->s.strOsType == "Windows7_64" 1288 || mUserData->s.strOsType == "WindowsVista" 1289 || mUserData->s.strOsType == "WindowsVista_64" 1290 || mUserData->s.strOsType == "Windows2012" 1291 || mUserData->s.strOsType == "Windows2012_64" 1292 || mUserData->s.strOsType == "Windows2008" 1293 || mUserData->s.strOsType == "Windows2008_64") 1294 { 1295 *aParavirtProvider = ParavirtProvider_HyperV; 1296 } 1297 #endif 1298 else 1299 *aParavirtProvider = ParavirtProvider_None; 1300 break; 1301 } 1302 } 1303 break; 1304 } 1305 } 1306 1307 Assert( *aParavirtProvider == ParavirtProvider_None 1308 || *aParavirtProvider == ParavirtProvider_Minimal 1309 || *aParavirtProvider == ParavirtProvider_HyperV); 1239 1310 return S_OK; 1240 1311 }
Note:
See TracChangeset
for help on using the changeset viewer.