VirtualBox

Changeset 22480 in vbox for trunk/src/recompiler


Ignore:
Timestamp:
Aug 26, 2009 5:14:13 PM (15 years ago)
Author:
vboxsync
Message:

SSM,VMM,Devices,Main,VBoxBFE: Live snapshot/migration SSM API adjustments.

Location:
trunk/src/recompiler
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/recompiler/VBoxREMWrapper.cpp

    r22118 r22480  
    877877};
    878878
    879 static const REMPARMDESC g_aArgsSSMIntCallback[] =
    880 {
    881     { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL },
    882     { REMPARMDESC_FLAGS_INT,        sizeof(PSSMHANDLE), NULL },
    883 };
    884 static REMFNDESC g_SSMIntCallback =
    885 {
    886     "SSMIntCallback", NULL, &g_aArgsSSMIntCallback[0], RT_ELEMENTS(g_aArgsSSMIntCallback), REMFNDESC_FLAGS_RET_INT, sizeof(int),  NULL
    887 };
    888 
    889 static const REMPARMDESC g_aArgsSSMIntLoadExecCallback[] =
     879static const REMPARMDESC g_aArgsSSMIntLiveExecCallback[] =
    890880{
    891881    { REMPARMDESC_FLAGS_INT,        sizeof(PVM),                NULL },
    892882    { REMPARMDESC_FLAGS_INT,        sizeof(PSSMHANDLE),         NULL },
     883    { REMPARMDESC_FLAGS_INT,        sizeof(uint32_t),           NULL },
     884};
     885static REMFNDESC g_SSMIntLiveExecCallback =
     886{
     887    "SSMIntLiveExecCallback", NULL, &g_aArgsSSMIntLiveExecCallback[0], RT_ELEMENTS(g_aArgsSSMIntLiveExecCallback), REMFNDESC_FLAGS_RET_INT, sizeof(int),  NULL
     888};
     889
     890static const REMPARMDESC g_aArgsSSMIntLiveVoteCallback[] =
     891{
     892    { REMPARMDESC_FLAGS_INT,        sizeof(PVM),                NULL },
     893    { REMPARMDESC_FLAGS_INT,        sizeof(PSSMHANDLE),         NULL },
     894};
     895static REMFNDESC g_SSMIntLiveVoteCallback =
     896{
     897    "SSMIntLiveVoteCallback", NULL, &g_aArgsSSMIntLiveVoteCallback[0], RT_ELEMENTS(g_aArgsSSMIntLiveVotecCallback), REMFNDESC_FLAGS_RET_INT, sizeof(bool),  NULL
     898};
     899
     900static const REMPARMDESC g_aArgsSSMIntCallback[] =
     901{
     902    { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL },
     903    { REMPARMDESC_FLAGS_INT,        sizeof(PSSMHANDLE), NULL },
     904};
     905static REMFNDESC g_SSMIntCallback =
     906{
     907    "SSMIntCallback", NULL, &g_aArgsSSMIntCallback[0], RT_ELEMENTS(g_aArgsSSMIntCallback), REMFNDESC_FLAGS_RET_INT, sizeof(int),  NULL
     908};
     909
     910static const REMPARMDESC g_aArgsSSMIntLoadExecCallback[] =
     911{
     912    { REMPARMDESC_FLAGS_INT,        sizeof(PVM),                NULL },
     913    { REMPARMDESC_FLAGS_INT,        sizeof(PSSMHANDLE),         NULL },
     914    { REMPARMDESC_FLAGS_INT,        sizeof(uint32_t),           NULL },
    893915    { REMPARMDESC_FLAGS_INT,        sizeof(uint32_t),           NULL },
    894916};
     
    904926    { REMPARMDESC_FLAGS_INT,        sizeof(uint32_t),           NULL },
    905927    { REMPARMDESC_FLAGS_INT,        sizeof(size_t),             NULL },
     928    { REMPARMDESC_FLAGS_PFN,        sizeof(PFNSSMINTLIVEPREP),  &g_SSMIntCallback },
     929    { REMPARMDESC_FLAGS_PFN,        sizeof(PFNSSMINTLIVEEXEC),  &g_SSMIntLiveExecCallback },
     930    { REMPARMDESC_FLAGS_PFN,        sizeof(PFNSSMINTLIVEVOTE),  &g_SSMIntLiveVoteCallback },
    906931    { REMPARMDESC_FLAGS_PFN,        sizeof(PFNSSMINTSAVEPREP),  &g_SSMIntCallback },
    907932    { REMPARMDESC_FLAGS_PFN,        sizeof(PFNSSMINTSAVEEXEC),  &g_SSMIntCallback },
  • trunk/src/recompiler/VBoxRecompiler.c

    r22112 r22480  
    8888*******************************************************************************/
    8989static DECLCALLBACK(int) remR3Save(PVM pVM, PSSMHANDLE pSSM);
    90 static DECLCALLBACK(int) remR3Load(PVM pVM, PSSMHANDLE pSSM, uint32_t u32Version);
     90static DECLCALLBACK(int) remR3Load(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion, uint32_t uPhase);
    9191static void     remR3StateUpdate(PVM pVM, PVMCPU pVCpu);
    9292static int      remR3InitPhysRamSizeAndDirtyMap(PVM pVM, bool fGuarded);
     
    339339     */
    340340    rc = SSMR3RegisterInternal(pVM, "rem", 1, REM_SAVED_STATE_VERSION, sizeof(uint32_t) * 10,
     341                               NULL, NULL, NULL,
    341342                               NULL, remR3Save, NULL,
    342343                               NULL, remR3Load, NULL);
     
    659660 * @param   pVM             VM Handle.
    660661 * @param   pSSM            SSM operation handle.
    661  * @param   u32Version      Data layout version.
    662  */
    663 static DECLCALLBACK(int) remR3Load(PVM pVM, PSSMHANDLE pSSM, uint32_t u32Version)
     662 * @param   uVersion        Data layout version.
     663 * @param   uPhase          The data phase.
     664 */
     665static DECLCALLBACK(int) remR3Load(PVM pVM, PSSMHANDLE pSSM, uint32_t uVersion, uint32_t uPhase)
    664666{
    665667    uint32_t u32Dummy;
     
    669671    int rc;
    670672    PREM pRem;
     673
    671674    LogFlow(("remR3Load:\n"));
     675    Assert(uPhase == SSM_PHASE_FINAL); NOREF(uPhase);
    672676
    673677    /*
    674678     * Validate version.
    675679     */
    676     if (    u32Version != REM_SAVED_STATE_VERSION
    677         &&  u32Version != REM_SAVED_STATE_VERSION_VER1_6)
    678     {
    679         AssertMsgFailed(("remR3Load: Invalid version u32Version=%d!\n", u32Version));
     680    if (    uVersion != REM_SAVED_STATE_VERSION
     681        &&  uVersion != REM_SAVED_STATE_VERSION_VER1_6)
     682    {
     683        AssertMsgFailed(("remR3Load: Invalid version uVersion=%d!\n", uVersion));
    680684        return VERR_SSM_UNSUPPORTED_DATA_UNIT_VERSION;
    681685    }
     
    699703    Assert(!pRem->fInREM);
    700704    SSMR3GetU32(pSSM,   &pRem->Env.hflags);
    701     if (u32Version == REM_SAVED_STATE_VERSION_VER1_6)
     705    if (uVersion == REM_SAVED_STATE_VERSION_VER1_6)
    702706    {
    703707        /* Redundant REM CPU state has to be loaded, but can be ignored. */
     
    720724        pRem->Env.state |= CPU_RAW_RING0;
    721725
    722     if (u32Version == REM_SAVED_STATE_VERSION_VER1_6)
     726    if (uVersion == REM_SAVED_STATE_VERSION_VER1_6)
    723727    {
    724728        /*
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