Changeset 19870 in vbox
- Timestamp:
- May 20, 2009 2:31:01 PM (15 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
-
EM.cpp (modified) (4 diffs)
-
EMInternal.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/EM.cpp
r19828 r19870 519 519 int rc = SSMR3PutBool(pSSM, pVCpu->em.s.fForceRAW); 520 520 AssertRCReturn(rc, rc); 521 522 Assert(pVCpu->em.s.enmState == EMSTATE_SUSPENDED); 523 Assert(pVCpu->em.s.enmPrevState != EMSTATE_SUSPENDED); 524 rc = SSMR3PutU32(pSSM, pVCpu->em.s.enmPrevState); 525 AssertRCReturn(rc, rc); 521 526 } 522 527 return VINF_SUCCESS; … … 539 544 * Validate version. 540 545 */ 541 if (u32Version != EM_SAVED_STATE_VERSION) 546 if ( u32Version != EM_SAVED_STATE_VERSION 547 && u32Version != EM_SAVED_STATE_VERSION_PRE_SMP) 542 548 { 543 549 AssertMsgFailed(("emR3Load: Invalid version u32Version=%d (current %d)!\n", u32Version, EM_SAVED_STATE_VERSION)); … … 556 562 pVCpu->em.s.fForceRAW = false; 557 563 564 if (u32Version > EM_SAVED_STATE_VERSION_PRE_SMP) 565 { 566 EMSTATE enmState; 567 uint32_t u32; 568 rc = SSMR3GetU32(pSSM, &u32); 569 AssertRCReturn(rc, rc); 570 571 enmState = (EMSTATE)u32; 572 Assert(enmState != EMSTATE_SUSPENDED); 573 pVCpu->em.s.enmState = enmState; 574 pVCpu->em.s.enmPrevState = EMSTATE_NONE; 575 } 558 576 Assert(!pVCpu->em.s.pCliStatTree); 559 577 } … … 3657 3675 rc = VINF_SUCCESS; 3658 3676 3659 /** @todo doesn't work for the save/restore case */3660 3677 if ( pVCpu->em.s.enmState == EMSTATE_SUSPENDED 3661 3678 && ( pVCpu->em.s.enmPrevState == EMSTATE_WAIT_SIPI -
trunk/src/VBox/VMM/EMInternal.h
r19440 r19870 43 43 44 44 /** The saved state version. */ 45 #define EM_SAVED_STATE_VERSION 2 45 #define EM_SAVED_STATE_VERSION 3 46 #define EM_SAVED_STATE_VERSION_PRE_SMP 2 46 47 47 48 /**
Note:
See TracChangeset
for help on using the changeset viewer.

