summaryrefslogtreecommitdiff
path: root/src/VBox/Devices/VMMDev
diff options
context:
space:
mode:
authorMichael Meskes <meskes@debian.org>2010-06-04 09:49:50 +0200
committerMichael Meskes <meskes@debian.org>2010-06-04 09:49:50 +0200
commite13debb062071c46f2707d0d0e59c57675b49360 (patch)
tree922f54068563b5cf3274bae8ba8122ce4b4ede1d /src/VBox/Devices/VMMDev
parentabd0051802e55207e88435a185ff8d6e6b8d17d5 (diff)
downloadvirtualbox-upstream/3.2.2-dfsg.tar.gz
Imported Upstream version 3.2.2-dfsgupstream/3.2.2-dfsg
Diffstat (limited to 'src/VBox/Devices/VMMDev')
-rw-r--r--src/VBox/Devices/VMMDev/VMMDev.cpp10
-rw-r--r--src/VBox/Devices/VMMDev/VMMDevHGCM.cpp11
2 files changed, 15 insertions, 6 deletions
diff --git a/src/VBox/Devices/VMMDev/VMMDev.cpp b/src/VBox/Devices/VMMDev/VMMDev.cpp
index dc8340c89..d700883be 100644
--- a/src/VBox/Devices/VMMDev/VMMDev.cpp
+++ b/src/VBox/Devices/VMMDev/VMMDev.cpp
@@ -1,4 +1,4 @@
-/* $Id: VMMDev.cpp 29590 2010-05-18 07:02:17Z vboxsync $ */
+/* $Id: VMMDev.cpp 29751 2010-05-21 23:32:23Z vboxsync $ */
/** @file
* VMMDev - Guest <-> VMM/Host communication device.
*/
@@ -1765,7 +1765,7 @@ static DECLCALLBACK(int) vmmdevRequestHandler(PPDMDEVINS pDevIns, void *pvUser,
VMMDevSharedModuleRegistrationRequest *pReqModule = (VMMDevSharedModuleRegistrationRequest *)pRequestHeader;
if ( pRequestHeader->size < sizeof(VMMDevSharedModuleRegistrationRequest)
- || pRequestHeader->size != RT_OFFSETOF(VMMDevSharedModuleRegistrationRequest, aRegions[pReqModule->cRegions]))
+ || pRequestHeader->size != RT_UOFFSETOF(VMMDevSharedModuleRegistrationRequest, aRegions[pReqModule->cRegions]))
{
pRequestHeader->rc = VERR_INVALID_PARAMETER;
}
@@ -2096,7 +2096,8 @@ static DECLCALLBACK(int) vmmdevSetMouseCapabilities(PPDMIVMMDEVPORT pInterface,
Log(("vmmdevSetMouseCapabilities: bNotify %d\n", bNotify));
- pThis->mouseCapabilities &= ~VMMDEV_MOUSE_HOST_MASK;
+ pThis->mouseCapabilities &= ~VMMDEV_MOUSE_HOST_MASK
+ | VMMDEV_MOUSE_HOST_RECHECKS_NEEDS_HOST_CURSOR;
pThis->mouseCapabilities |= (capabilities & VMMDEV_MOUSE_HOST_MASK);
if (bNotify)
VMMDevNotifyGuest (pThis, VMMDEV_EVENT_MOUSE_CAPABILITIES_CHANGED);
@@ -2883,7 +2884,8 @@ static DECLCALLBACK(int) vmmdevConstruct(PPDMDEVINS pDevIns, int iInstance, PCFG
AssertRCReturn(rc, rc);
pThis->u32HGCMEnabled = 0;
#endif /* VBOX_WITH_HGCM */
- /* The GUI checks whether this changes in this version of VirtualBox. */
+ /* In this version of VirtualBox the GUI checks whether "needs host cursor"
+ * changes. */
pThis->mouseCapabilities |= VMMDEV_MOUSE_HOST_RECHECKS_NEEDS_HOST_CURSOR;
PDMDevHlpSTAMRegisterF(pDevIns, &pThis->StatMemBalloonChunks, STAMTYPE_U32, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, "Memory balloon size", "/Devices/VMMDev/BalloonChunks");
diff --git a/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp b/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp
index 2adbbad35..bca441b9f 100644
--- a/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp
+++ b/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp
@@ -1,4 +1,4 @@
-/* $Id: VMMDevHGCM.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */
+/* $Id: VMMDevHGCM.cpp 29743 2010-05-21 16:00:02Z vboxsync $ */
/** @file
* VMMDev - HGCM - Host-Guest Communication Manager Device.
*/
@@ -1065,8 +1065,15 @@ int vmmdevHGCMCall (VMMDevState *pVMMDevState, VMMDevHGCMCall *pHGCMCall, uint32
/* Pass the function call to HGCM connector for actual processing */
rc = pVMMDevState->pHGCMDrv->pfnCall (pVMMDevState->pHGCMDrv, pCmd, pHGCMCall->u32ClientID,
pHGCMCall->u32Function, cParms, pCmd->paHostParms);
+
+ if (RT_FAILURE (rc))
+ {
+ Log(("vmmdevHGCMCall: pfnCall failed rc = %Rrc\n", rc));
+ vmmdevHGCMRemoveCommand (pVMMDevState, pCmd);
+ }
}
- else
+
+ if (RT_FAILURE (rc))
{
if (pCmd->paLinPtrs)
{