Changeset 52767 in vbox
- Timestamp:
- Sep 16, 2014 4:51:51 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 96137
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/GIMAll.cpp
r52006 r52767 40 40 VMMDECL(bool) GIMIsEnabled(PVM pVM) 41 41 { 42 return pVM->gim.s. fEnabled;42 return pVM->gim.s.enmProviderId != GIMPROVIDERID_NONE; 43 43 } 44 44 … … 116 116 VMM_INT_DECL(bool) GIMIsParavirtTscEnabled(PVM pVM) 117 117 { 118 if (!pVM->gim.s.fEnabled)119 return false;120 121 118 switch (pVM->gim.s.enmProviderId) 122 119 { -
trunk/src/VBox/VMM/VMMR0/GIMR0.cpp
r51643 r52767 90 90 VMMR0_INT_DECL(int) GIMR0UpdateParavirtTsc(PVM pVM, uint64_t u64Offset) 91 91 { 92 if (!pVM->gim.s.fEnabled)93 return VERR_GIM_NOT_ENABLED;94 95 92 switch (pVM->gim.s.enmProviderId) 96 93 { 97 94 case GIMPROVIDERID_HYPERV: 98 95 return GIMR0HvUpdateParavirtTsc(pVM, u64Offset); 96 97 case GIMPROVIDERID_NONE: 98 return VERR_GIM_NOT_ENABLED; 99 99 100 100 default: -
trunk/src/VBox/VMM/VMMR3/GIM.cpp
r52764 r52767 119 119 LogRel(("GIM: Using provider \"%s\" (Implementation version: %u)\n", szProvider, uVersion)); 120 120 if (!RTStrCmp(szProvider, "None")) 121 {122 Assert(!pVM->gim.s.fEnabled);123 121 pVM->gim.s.enmProviderId = GIMPROVIDERID_NONE; 124 }125 122 else 126 123 { 127 pVM->gim.s.fEnabled = true;128 124 pVM->gim.s.u32Version = uVersion; 129 125 /** @todo r=bird: Because u32Version is saved, it should be translated to the … … 160 156 VMMR3_INT_DECL(int) GIMR3InitCompleted(PVM pVM) 161 157 { 162 if (!pVM->gim.s.fEnabled)163 return VINF_SUCCESS;164 165 158 switch (pVM->gim.s.enmProviderId) 166 159 { … … 191 184 LogFlow(("GIMR3Relocate\n")); 192 185 193 if ( !pVM->gim.s.fEnabled186 if ( pVM->gim.s.enmProviderId == GIMPROVIDERID_NONE 194 187 || HMIsEnabled(pVM)) 195 188 { … … 234 227 235 228 /** @todo Save per-CPU data. */ 236 int rc ;229 int rc = VINF_SUCCESS; 237 230 #if 0 238 231 SSMR3PutU32(pSSM, pVM->cCpus); … … 246 239 * Save per-VM data. 247 240 */ 248 SSMR3PutBool(pSSM, pVM->gim.s.fEnabled);249 241 SSMR3PutU32(pSSM, pVM->gim.s.enmProviderId); 250 rc = SSMR3PutU32(pSSM, pVM->gim.s.u32Version); 251 AssertRCReturn(rc, rc); 242 SSMR3PutU32(pSSM, pVM->gim.s.u32Version); 252 243 253 244 /* 254 245 * Save provider-specific data. 255 246 */ 256 if (pVM->gim.s.fEnabled) 257 { 258 switch (pVM->gim.s.enmProviderId) 259 { 260 case GIMPROVIDERID_HYPERV: 261 rc = GIMR3HvSave(pVM, pSSM); 262 AssertRCReturn(rc, rc); 263 break; 264 265 default: 266 break; 267 } 247 switch (pVM->gim.s.enmProviderId) 248 { 249 case GIMPROVIDERID_HYPERV: 250 rc = GIMR3HvSave(pVM, pSSM); 251 AssertRCReturn(rc, rc); 252 break; 253 254 default: 255 break; 268 256 } 269 257 … … 301 289 * Load per-VM data. 302 290 */ 303 bool fEnabled;304 SSMR3GetBool(pSSM, &fEnabled);305 291 uint32_t uProviderId; 306 SSMR3GetU32(pSSM, &uProviderId);307 292 uint32_t uProviderVersion; 308 rc = SSMR3GetU32(pSSM, &uProviderVersion); 309 AssertRCReturn(rc, rc); 293 294 rc = SSMR3GetU32(pSSM, &uProviderId); AssertRCReturn(rc, rc); 295 rc = SSMR3GetU32(pSSM, &uProviderVersion); AssertRCReturn(rc, rc); 310 296 311 297 if ((GIMPROVIDERID)uProviderId != pVM->gim.s.enmProviderId) … … 323 309 * Load provider-specific data. 324 310 */ 325 if (pVM->gim.s.fEnabled) 326 { 327 switch (pVM->gim.s.enmProviderId) 328 { 329 case GIMPROVIDERID_HYPERV: 330 rc = GIMR3HvLoad(pVM, pSSM, uVersion); 331 AssertRCReturn(rc, rc); 332 break; 333 334 default: 335 break; 336 } 337 } 338 339 return rc; 311 switch (pVM->gim.s.enmProviderId) 312 { 313 case GIMPROVIDERID_HYPERV: 314 rc = GIMR3HvLoad(pVM, pSSM, uVersion); 315 AssertRCReturn(rc, rc); 316 break; 317 318 default: 319 break; 320 } 321 322 return VINF_SUCCESS; 340 323 } 341 324 … … 352 335 VMMR3_INT_DECL(int) GIMR3Term(PVM pVM) 353 336 { 354 if (!pVM->gim.s.fEnabled)355 return VINF_SUCCESS;356 357 337 switch (pVM->gim.s.enmProviderId) 358 338 { … … 378 358 VMMR3_INT_DECL(void) GIMR3Reset(PVM pVM) 379 359 { 380 if (!pVM->gim.s.fEnabled)381 return;382 383 360 switch (pVM->gim.s.enmProviderId) 384 361 { … … 422 399 423 400 *pcRegions = 0; 424 if (!pVM->gim.s.fEnabled)425 return NULL;426 427 401 switch (pVM->gim.s.enmProviderId) 428 402 { -
trunk/src/VBox/VMM/include/GIMInternal.h
r52765 r52767 40 40 typedef struct GIM 41 41 { 42 /** Whether GIM is enabled for this VM or not. */43 bool fEnabled;44 42 /** The provider that is active for this VM. */ 45 43 GIMPROVIDERID enmProviderId;
Note:
See TracChangeset
for help on using the changeset viewer.