VirtualBox

Changeset 98666 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
Feb 21, 2023 8:46:29 AM (2 years ago)
Author:
vboxsync
Message:

Guest Control: Streamlined GuestWaitEventBase / GuestWaitEvent interfaces and use getters for retrieving guest side errors where applicable. bugref:9783

Location:
trunk/src/VBox/Main
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/include/GuestCtrlImplPrivate.h

    r98665 r98666  
    12271227public:
    12281228
    1229     uint32_t                ContextID(void) { return mCID; };
    1230     int                     GuestResult(void) { return mGuestRc; }
    1231     int                     Result(void) { return mVrc; }
    1232     GuestWaitEventPayload  &Payload(void) { return mPayload; }
    1233     int                     SignalInternal(int vrc, int vrcGuest, const GuestWaitEventPayload *pPayload);
    1234     int                     Wait(RTMSINTERVAL uTimeoutMS);
     1229    uint32_t               ContextID(void) const { return mCID; };
     1230    int                    GuestResult(void) const { return mGuestRc; }
     1231    bool                   HasGuestError(void) const { return mVrc == VERR_GSTCTL_GUEST_ERROR; }
     1232    int                    Result(void) const { return mVrc; }
     1233    GuestWaitEventPayload &Payload(void) { return mPayload; }
     1234    int                    SignalInternal(int vrc, int vrcGuest, const GuestWaitEventPayload *pPayload);
     1235    int                    Wait(RTMSINTERVAL uTimeoutMS);
    12351236
    12361237protected:
     
    12731274    int                              Init(uint32_t uCID, const GuestEventTypes &lstEvents);
    12741275    int                              Cancel(void);
    1275     const ComPtr<IEvent>             Event(void) { return mEvent; }
    1276     bool                             HasGuestError(void) const { return mVrc == VERR_GSTCTL_GUEST_ERROR; }
    1277     int                              GetGuestError(void) const { return mGuestRc; }
     1276    const ComPtr<IEvent>             Event(void) const { return mEvent; }
    12781277    int                              SignalExternal(IEvent *pEvent);
    1279     const GuestEventTypes           &Types(void) { return mEventTypes; }
    1280     size_t                           TypeCount(void) { return mEventTypes.size(); }
     1278    const GuestEventTypes           &Types(void) const { return mEventTypes; }
     1279    size_t                           TypeCount(void) const { return mEventTypes.size(); }
    12811280
    12821281protected:
  • trunk/src/VBox/Main/src-client/GuestCtrlPrivate.cpp

    r98544 r98666  
    18001800 * @returns VBox status code.
    18011801 * @retval  VERR_GSTCTL_GUEST_ERROR may be returned, call GuestResult() to get
    1802  *          the actual result.
     1802 *          the actual result from the guest side.
    18031803 *
    18041804 * @param   msTimeout           Timeout (in ms) to wait.
  • trunk/src/VBox/Main/src-client/GuestDirectoryImpl.cpp

    r98643 r98666  
    756756            }
    757757            else if (pEvent->HasGuestError()) /* Return guest vrc if available. */
    758                 vrc = pEvent->GetGuestError();
     758                vrc = pEvent->GuestResult();
    759759        }
    760760
  • trunk/src/VBox/Main/src-client/GuestFileImpl.cpp

    r98526 r98666  
    967967        }
    968968        else if (pEvent->HasGuestError()) /* Return guest vrc if available. */
    969             vrc = pEvent->GetGuestError();
     969            vrc = pEvent->GuestResult();
    970970    }
    971971
     
    10391039        }
    10401040        else if (pEvent->HasGuestError()) /* Return guest vrc if available. */
    1041             vrc = pEvent->GetGuestError();
     1041            vrc = pEvent->GuestResult();
    10421042    }
    10431043
     
    11091109        }
    11101110        else if (pEvent->HasGuestError()) /* Return guest vrc if available. */
    1111             vrc = pEvent->GetGuestError();
     1111            vrc = pEvent->GuestResult();
    11121112    }
    11131113
     
    14331433        }
    14341434        else if (pEvent->HasGuestError()) /* Return guest vrc if available. */
    1435             vrc = pEvent->GetGuestError();
     1435            vrc = pEvent->GuestResult();
    14361436    }
    14371437
     
    15081508        }
    15091509        else if (pEvent->HasGuestError()) /* Return guest vrc if available. */
    1510             vrc = pEvent->GetGuestError();
     1510            vrc = pEvent->GuestResult();
    15111511    }
    15121512
     
    18341834                    vrc = VWRN_GSTCTL_OBJECTSTATE_CHANGED;
    18351835            }
    1836             if (RT_FAILURE(vrc) && pWaitEvent->HasGuestError()) /* Return guest vrc if available. */
    1837                 vrc = pWaitEvent->GetGuestError();
     1836
     1837            if (pWaitEvent->HasGuestError()) /* Return guest vrc if available. */
     1838                vrc = pWaitEvent->GuestResult();
    18381839        }
    18391840
  • trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp

    r98614 r98666  
    18801880    }
    18811881    /* waitForEvent may also return VERR_GSTCTL_GUEST_ERROR like we do above, so make pvrcGuest is set. */
    1882     else if (vrc == VERR_GSTCTL_GUEST_ERROR && pvrcGuest)
     1882    else if (pEvent->HasGuestError() && pvrcGuest)
    18831883        *pvrcGuest = pEvent->GuestResult();
    18841884    Assert(vrc != VERR_GSTCTL_GUEST_ERROR || !pvrcGuest || *pvrcGuest != (int)0xcccccccc);
  • trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp

    r98665 r98666  
    11821182    {
    11831183        vrc = pEvent->Wait(30 * 1000);
    1184         if (   vrc == VERR_GSTCTL_GUEST_ERROR
    1185             && pvrcGuest)
     1184        if (pEvent->HasGuestError() && pvrcGuest)
    11861185            *pvrcGuest = pEvent->GuestResult();
    11871186    }
     
    12731272            else
    12741273            {
    1275                 if (vrc == VERR_GSTCTL_GUEST_ERROR)
    1276                 {
    1277                     if (pvrcGuest)
    1278                         *pvrcGuest = pEvent->GuestResult();
    1279                 }
     1274                if (pEvent->HasGuestError() && pvrcGuest)
     1275                    *pvrcGuest = pEvent->GuestResult();
    12801276            }
    12811277        }
     
    20172013            else
    20182014            {
    2019                 if (vrc == VERR_GSTCTL_GUEST_ERROR)
    2020                 {
    2021                     if (pvrcGuest)
    2022                         *pvrcGuest = pEvent->GuestResult();
    2023                 }
     2015                if (pEvent->HasGuestError() && pvrcGuest)
     2016                    *pvrcGuest = pEvent->GuestResult();
    20242017            }
    20252018        }
     
    28732866    {
    28742867        vrc = pEvent->Wait(30 * 1000);
    2875         if (   vrc == VERR_GSTCTL_GUEST_ERROR
    2876             && pvrcGuest)
     2868        if (pEvent->HasGuestError() && pvrcGuest)
    28772869            *pvrcGuest = pEvent->GuestResult();
    28782870    }
     
    29232915        else
    29242916        {
    2925             if (vrc == VERR_GSTCTL_GUEST_ERROR)
    2926             {
    2927                 if (pvrcGuest)
    2928                     *pvrcGuest = pEvent->GuestResult();
    2929             }
     2917            if (pEvent->HasGuestError() && pvrcGuest)
     2918                *pvrcGuest = pEvent->GuestResult();
    29302919        }
    29312920    }
     
    29762965        else
    29772966        {
    2978             if (vrc == VERR_GSTCTL_GUEST_ERROR)
    2979             {
    2980                 if (pvrcGuest)
    2981                     *pvrcGuest = pEvent->GuestResult();
    2982             }
     2967            if (pEvent->HasGuestError() && pvrcGuest)
     2968                *pvrcGuest = pEvent->GuestResult();
    29832969        }
    29842970    }
     
    33623348        if (RT_FAILURE(vrc))
    33633349        {
    3364             if (vrc == VERR_GSTCTL_GUEST_ERROR)
     3350            if (pEvent->HasGuestError())
    33653351                vrcGuest = pEvent->GuestResult();
    33663352        }
     
    33703356    {
    33713357        LogRel(("Guest Control: Shutting down guest failed, vrc=%Rrc\n", vrc == VERR_GSTCTL_GUEST_ERROR ? vrcGuest : vrc));
    3372         if (   vrc == VERR_GSTCTL_GUEST_ERROR
    3373             && pvrcGuest)
     3358        if (pEvent->HasGuestError() && pvrcGuest)
    33743359            *pvrcGuest = vrcGuest;
    33753360    }
     
    36843669    }
    36853670    /* waitForEvent may also return VERR_GSTCTL_GUEST_ERROR like we do above, so make pvrcGuest is set. */
    3686     else if (vrc == VERR_GSTCTL_GUEST_ERROR && pvrcGuest)
     3671    else if (pEvent->HasGuestError() && pvrcGuest)
    36873672        *pvrcGuest = pEvent->GuestResult();
    36883673    Assert(vrc != VERR_GSTCTL_GUEST_ERROR || !pvrcGuest || *pvrcGuest != (int)0xcccccccc);
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