Changeset 19436 in vbox for trunk/src/VBox
- Timestamp:
- May 6, 2009 2:33:49 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMM.cpp
r19434 r19436 219 219 int rc = VINF_SUCCESS; 220 220 221 for ( unsignedidCpu = 0; idCpu < pVM->cCPUs; idCpu++)221 for (VMCPUID idCpu = 0; idCpu < pVM->cCPUs; idCpu++) 222 222 { 223 223 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 392 392 int rc = VINF_SUCCESS; 393 393 394 for ( unsignedidCpu = 0; idCpu < pVM->cCPUs; idCpu++)394 for (VMCPUID idCpu = 0; idCpu < pVM->cCPUs; idCpu++) 395 395 { 396 396 PVMCPU pVCpu = &pVM->aCpus[idCpu]; … … 660 660 * The stack. 661 661 */ 662 for ( unsigned i=0;i<pVM->cCPUs;i++)662 for (VMCPUID i = 0; i < pVM->cCPUs; i++) 663 663 { 664 664 PVMCPU pVCpu = &pVM->aCpus[i]; … … 669 669 pVCpu->vmm.s.pbEMTStackBottomRC = pVCpu->vmm.s.pbEMTStackRC + VMM_STACK_SIZE; 670 670 } 671 672 671 673 672 /* … … 826 825 LogFlow(("vmmR3Save:\n")); 827 826 828 for (unsigned i=0;i<pVM->cCPUs;i++) 829 { 830 PVMCPU pVCpu = &pVM->aCpus[i]; 831 832 /* 833 * The hypervisor stack. 834 * Note! See not in vmmR3Load. 835 */ 836 SSMR3PutRCPtr(pSSM, pVCpu->vmm.s.pbEMTStackBottomRC); 837 838 RTRCPTR RCPtrESP = CPUMGetHyperESP(pVCpu); 839 AssertMsg(pVCpu->vmm.s.pbEMTStackBottomRC - RCPtrESP <= VMM_STACK_SIZE, ("Bottom %RRv ESP=%RRv\n", pVCpu->vmm.s.pbEMTStackBottomRC, RCPtrESP)); 840 SSMR3PutRCPtr(pSSM, RCPtrESP); 841 842 SSMR3PutMem(pSSM, pVCpu->vmm.s.pbEMTStackR3, VMM_STACK_SIZE); 843 } 827 /* 828 * The hypervisor stack. 829 * Note! See note in vmmR3Load (remove this on version change). 830 */ 831 PVMCPU pVCpu0 = &pVM->aCpus[0]; 832 SSMR3PutRCPtr(pSSM, pVCpu0->vmm.s.pbEMTStackBottomRC); 833 RTRCPTR RCPtrESP = CPUMGetHyperESP(pVCpu0); 834 AssertMsg(pVCpu0->vmm.s.pbEMTStackBottomRC - RCPtrESP <= VMM_STACK_SIZE, ("Bottom %RRv ESP=%RRv\n", pVCpu0->vmm.s.pbEMTStackBottomRC, RCPtrESP)); 835 SSMR3PutRCPtr(pSSM, RCPtrESP); 836 SSMR3PutMem(pSSM, pVCpu0->vmm.s.pbEMTStackR3, VMM_STACK_SIZE); 837 838 /* 839 * Save the started/stopped state of all CPUs except 0 as it will always 840 * be running. This avoids breaking the saved state version. :-) 841 */ 842 for (VMCPUID i = 1; i < pVM->cCPUs; i++) 843 SSMR3PutBool(pSSM, VMCPUSTATE_IS_STARTED(VMCPU_GET_STATE(&pVM->aCpus[i]))); 844 844 845 return SSMR3PutU32(pSSM, ~0); /* terminator */ 845 846 } … … 880 881 if (RT_FAILURE(rc)) 881 882 return rc; 882 883 /* restore the stack. */ 884 for (unsigned i=0;i<pVM->cCPUs;i++) 885 { 886 PVMCPU pVCpu = &pVM->aCpus[i]; 887 888 SSMR3GetMem(pSSM, pVCpu->vmm.s.pbEMTStackR3, VMM_STACK_SIZE); 883 SSMR3GetMem(pSSM, pVM->aCpus[0].vmm.s.pbEMTStackR3, VMM_STACK_SIZE); 884 885 /* Restore the VMCPU states. VCPU 0 is always started. */ 886 VMCPU_SET_STATE(&pVM->aCpus[0], VMCPUSTATE_STARTED); 887 for (VMCPUID i = 1; i < pVM->cCPUs; i++) 888 { 889 bool fStarted; 890 rc = SSMR3GetBool(pSSM, &fStarted); 891 if (RT_FAILURE(rc)) 892 return rc; 893 VMCPU_SET_STATE(&pVM->aCpus[i], fStarted ? VMCPUSTATE_STARTED : VMCPUSTATE_STOPPED); 889 894 } 890 895
Note:
See TracChangeset
for help on using the changeset viewer.