VirtualBox

Changeset 61584 in vbox


Ignore:
Timestamp:
Jun 8, 2016 3:15:52 PM (9 years ago)
Author:
vboxsync
Message:

VMM/APIC: Bumps saved-state version and add the LINT0/LINT1 interrupt line states to the saved-state.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/APIC.cpp

    r61581 r61584  
    3636*********************************************************************************************************************************/
    3737/** The current APIC saved state version. */
    38 #define APIC_SAVED_STATE_VERSION             4
     38#define APIC_SAVED_STATE_VERSION                  5
     39/** VirtualBox 5.1 beta2 - pre fActiveLintX. */
     40#define APIC_SAVED_STATE_VERSION_VBOX_51_BETA2    4
    3941/** The saved state version used by VirtualBox 5.0 and
    4042 *  earlier.  */
    41 #define APIC_SAVED_STATE_VERSION_VBOX_50     3
     43#define APIC_SAVED_STATE_VERSION_VBOX_50          3
    4244/** The saved state version used by VirtualBox v3 and earlier.
    4345 * This does not include the config.  */
    44 #define APIC_SAVED_STATE_VERSION_VBOX_30     2
     46#define APIC_SAVED_STATE_VERSION_VBOX_30          2
    4547/** Some ancient version... */
    46 #define APIC_SAVED_STATE_VERSION_ANCIENT     1
     48#define APIC_SAVED_STATE_VERSION_ANCIENT          1
    4749
    4850
     
    825827    {
    826828        case APIC_SAVED_STATE_VERSION:
     829        case APIC_SAVED_STATE_VERSION_VBOX_51_BETA2:
    827830        {
    828831            /* The auxiliary state. */
     
    842845            LogRel(("APIC%u: Edge PIB : %.*Rhxs\n", pVCpu->idCpu, sizeof(APICPIB), pApicCpu->pvApicPibR3));
    843846            LogRel(("APIC%u: Level PIB: %.*Rhxs\n", pVCpu->idCpu, sizeof(APICPIB), &pApicCpu->ApicPibLevel));
     847
     848            /* The LINT0, LINT1 interrupt line active states. */
     849            LogRel(("APIC%u: fActiveLint0             = %RTbool\n", pVCpu->idCpu, pApicCpu->fActiveLint0));
     850            LogRel(("APIC%u: fActiveLint1             = %RTbool\n", pVCpu->idCpu, pApicCpu->fActiveLint1));
    844851
    845852            /* The APIC page. */
     
    11171124        TMR3TimerSave(pApicCpu->pTimerR3, pSSM);
    11181125
     1126        /* Save the LINT0, LINT1 interrupt line states. */
     1127        SSMR3PutBool(pSSM, pApicCpu->fActiveLint0);
     1128        SSMR3PutBool(pSSM, pApicCpu->fActiveLint1);
     1129
    11191130#if defined(APIC_FUZZY_SSM_COMPAT_TEST) || defined(DEBUG_ramshankar)
    11201131        apicR3DumpState(pVCpu, "Saved state", APIC_SAVED_STATE_VERSION);
     
    11471158    /* Weed out invalid versions. */
    11481159    if (   uVersion != APIC_SAVED_STATE_VERSION
     1160        && uVersion != APIC_SAVED_STATE_VERSION_VBOX_51_BETA2
    11491161        && uVersion != APIC_SAVED_STATE_VERSION_VBOX_50
    11501162        && uVersion != APIC_SAVED_STATE_VERSION_VBOX_30
     
    11701182        PAPICCPU pApicCpu = VMCPU_TO_APICCPU(pVCpu);
    11711183
    1172         if (uVersion == APIC_SAVED_STATE_VERSION)
     1184        if (   uVersion == APIC_SAVED_STATE_VERSION
     1185            || uVersion == APIC_SAVED_STATE_VERSION_VBOX_51_BETA2)
    11731186        {
    11741187            /* Load the auxiliary data. */
     
    11931206                uint8_t const  uTimerShift   = apicGetTimerShift(pXApicPage);
    11941207                apicHintTimerFreq(pApicCpu, uInitialCount, uTimerShift);
     1208            }
     1209
     1210            /* Load the LINT0, LINT1 interrupt line states. */
     1211            if (uVersion > APIC_SAVED_STATE_VERSION_VBOX_51_BETA2)
     1212            {
     1213                SSMR3GetBool(pSSM, (bool *)&pApicCpu->fActiveLint0);
     1214                SSMR3GetBool(pSSM, (bool *)&pApicCpu->fActiveLint1);
    11951215            }
    11961216        }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette