VirtualBox

Changeset 105751 in vbox for trunk/src/VBox/Additions/common


Ignore:
Timestamp:
Aug 21, 2024 9:51:08 AM (6 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164463
Message:

VMMDev,Vbgl: Extend the VMMDevReq_HGCMCancel2 request to take a full 64-bit physical address. This should be backwards compatible. bugref:10456

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR0LibHGCMInternal.cpp

    r98103 r105751  
    733733             *
    734734             * This is a bit messy because we're racing request completion. Sorry.
     735             *
     736             * Note! The VMMDevHGCMCancel2 request size was increased in 7.1 to fully
     737             *       handle 64-bit addresses.  Using the new structure size with older
     738             *       VBox host versions will work, though, since they check for a
     739             *       minimum request size and will ignore any extra stuff they don't
     740             *       understand.  Both ARM and x86 guests are little endian, this
     741             *       naturally wouldn't work for big-endian guests.
     742             *
     743             *       Of course, they won't find requests with addresses above 4GB, but
     744             *       that's not a real issue since it is used by ARM guests only.
    735745             */
    736746            /** @todo It would be nice if we could use the waiter callback to do further
     
    745755                VbglR0GRFree(&pCancelReq->header);
    746756            }
    747 #if 1 /** @todo ADDVER: Remove this on next minor version change. */
    748             if (rc2 == VERR_NOT_IMPLEMENTED)
    749             {
    750                 /* host is too old, or we're out of heap. */
    751                 pHGCMCall->header.fu32Flags |= VBOX_HGCM_REQ_CANCELLED;
    752                 pHGCMCall->header.header.requestType = VMMDevReq_HGCMCancel;
    753                 rc2 = VbglR0GRPerform(&pHGCMCall->header.header);
    754                 if (rc2 == VERR_INVALID_PARAMETER)
    755                     rc2 = VERR_NOT_FOUND;
    756                 else if (RT_SUCCESS(rc))
    757                     RTThreadSleep(1);
    758             }
    759 #endif
    760757            if (RT_SUCCESS(rc)) rc = VERR_INTERRUPTED; /** @todo weed this out from the WINNT VBoxGuest code. */
    761758            if (RT_SUCCESS(rc2))
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