VirtualBox

vbox的更動 8690 路徑 trunk/src/VBox/Devices/VMMDev


忽略:
時間撮記:
2008-5-7 下午11:00:06 (17 年 以前)
作者:
vboxsync
訊息:

UpdateGuestVersion fixes.

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Devices/VMMDev/VBoxDev.cpp

    r8689 r8690  
    19951995static DECLCALLBACK(int) vmmdevLoadState(PPDMDEVINS pDevIns, PSSMHANDLE pSSMHandle, uint32_t u32Version)
    19961996{
     1997    /** @todo The code load code is assuming we're always loaded into a fresh VM. */
    19971998    VMMDevState *pData = PDMINS2DATA(pDevIns, VMMDevState*);
    19981999    if (   SSM_VERSION_MAJOR_CHANGED(u32Version, VMMDEV_SSM_VERSION)
    19992000        || (SSM_VERSION_MINOR(u32Version) < 6))
    20002001        return VERR_SSM_UNSUPPORTED_DATA_UNIT_VERSION;
     2002
    20012003    SSMR3GetU32(pSSMHandle, &pData->hypervisorSize);
    20022004    SSMR3GetU32(pSSMHandle, &pData->mouseCapabilities);
     
    22962298{
    22972299    VMMDevState *pData = PDMINS2DATA(pDevIns, VMMDevState*);
     2300
    22982301    /*
    22992302     * Reset the mouse integration feature bit
     
    23272330
    23282331    /* Reset means that additions will report again. */
     2332    const bool fVersionChanged = pData->fu32AdditionsOk
     2333                              || pData->guestInfo.additionsVersion
     2334                              || pData->guestInfo.osType != VBOXOSTYPE_Unknown;
     2335    if (fVersionChanged)
     2336        Log(("vmmdevReset: fu32AdditionsOk=%d additionsVersion=%x osType=%#x\n",
     2337             pData->fu32AdditionsOk, pData->guestInfo.additionsVersion, pData->guestInfo.osType));
    23292338    pData->fu32AdditionsOk = false;
    23302339    memset (&pData->guestInfo, 0, sizeof (pData->guestInfo));
    2331     pData->pDrv->pfnUpdateGuestVersion(pData->pDrv, &pData->guestInfo);
    2332 
     2340
     2341    /* clear pending display change request. */
    23332342    memset (&pData->lastReadDisplayChangeRequest, 0, sizeof (pData->lastReadDisplayChangeRequest));
    23342343
     
    23422351    pData->u32LastStatIntervalSize = 0;
    23432352
    2344     /* Clear the event variables.
     2353    /*
     2354     * Clear the event variables.
    23452355     *
    23462356     *   Note: The pData->u32HostEventFlags is not cleared.
     
    23522362    pData->fNewGuestFilterMask   = 0;
    23532363
    2354     /* This is the default, as Windows and OS/2 guests take this for granted. */
     2364    /* This is the default, as Windows and OS/2 guests take this for granted. (Actually, neither does...) */
    23552365    /** @todo change this when we next bump the interface version */
    2356     pData->guestCaps = VMMDEV_GUEST_SUPPORTS_GRAPHICS;
    2357     pData->pDrv->pfnUpdateGuestCapabilities(pData->pDrv, pData->guestCaps);
     2366    const bool fCapsChanged = pData->guestCaps != VMMDEV_GUEST_SUPPORTS_GRAPHICS;
     2367    if (fCapsChanged)
     2368        Log(("vmmdevReset: fCapsChanged=%#x -> %#x\n", pData->guestCaps, VMMDEV_GUEST_SUPPORTS_GRAPHICS));
     2369    pData->guestCaps = VMMDEV_GUEST_SUPPORTS_GRAPHICS; /** @todo r=bird: why? I cannot see this being done at construction?*/
     2370
     2371    /*
     2372     * Call the update functions as required.
     2373     */
     2374    if (fVersionChanged)
     2375        pData->pDrv->pfnUpdateGuestVersion(pData->pDrv, &pData->guestInfo);
     2376    if (fCapsChanged)
     2377        pData->pDrv->pfnUpdateGuestCapabilities(pData->pDrv, pData->guestCaps);
    23582378}
    23592379
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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