Changeset 75798 in vbox for trunk/src/VBox/Main/src-client
- Timestamp:
- Nov 28, 2018 11:47:11 PM (6 years ago)
- Location:
- trunk/src/VBox/Main/src-client
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/GuestCtrlPrivate.cpp
r75737 r75798 1179 1179 } 1180 1180 1181 int GuestObject::sendCommand(uint32_t uFunction, 1182 uint32_t cParms, PVBOXHGCMSVCPARM paParms) 1181 int GuestObject::sendCommand(uint32_t uFunction, uint32_t cParms, PVBOXHGCMSVCPARM paParms) 1183 1182 { 1184 1183 #ifndef VBOX_GUESTCTRL_TEST_CASE … … 1192 1191 if (pVMMDev) 1193 1192 { 1193 /* HACK ALERT! We extend the first parameter to 64-bit and use the 1194 two topmost bits for call destination information. */ 1195 Assert(paParms[0].type == VBOX_HGCM_SVC_PARM_32BIT); 1196 paParms[0].type = VBOX_HGCM_SVC_PARM_64BIT; 1197 paParms[0].u.uint64 = (uint64_t)paParms[0].u.uint32 | VBOX_GUESTCTRL_DST_SESSION; 1198 1199 /* Make the call. */ 1194 1200 LogFlowThisFunc(("uFunction=%RU32, cParms=%RU32\n", uFunction, cParms)); 1195 1201 vrc = pVMMDev->hgcmHostCall(HGCMSERVICE_NAME, uFunction, cParms, paParms); -
trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp
r75737 r75798 718 718 alock.release(); /* Drop the write lock before waiting. */ 719 719 720 vrc = i_sendCommand(HOST_SESSION_CLOSE, i, paParms );720 vrc = i_sendCommand(HOST_SESSION_CLOSE, i, paParms, VBOX_GUESTCTRL_DST_BOTH); 721 721 if (RT_SUCCESS(vrc)) 722 722 vrc = i_waitForStatusChange(pEvent, GuestSessionWaitForFlag_Terminate, uTimeoutMS, … … 1946 1946 alock.release(); /* Drop write lock before sending. */ 1947 1947 1948 vrc = i_sendCommand(HOST_SESSION_CREATE, i, paParms );1948 vrc = i_sendCommand(HOST_SESSION_CREATE, i, paParms, VBOX_GUESTCTRL_DST_ROOT_SVC); 1949 1949 if (RT_SUCCESS(vrc)) 1950 1950 { … … 2454 2454 } 2455 2455 2456 int GuestSession::i_sendCommand(uint32_t uFunction, 2457 uint 32_t uParms, PVBOXHGCMSVCPARM paParms)2456 int GuestSession::i_sendCommand(uint32_t uFunction, uint32_t uParms, PVBOXHGCMSVCPARM paParms, 2457 uint64_t fDst /*= VBOX_GUESTCTRL_DST_SESSION*/) 2458 2458 { 2459 2459 LogFlowThisFuncEnter(); … … 2467 2467 AssertPtr(pVMMDev); 2468 2468 2469 LogFlowThisFunc(("uFunction=%RU32, uParms=%RU32\n", uFunction, uParms)); 2469 LogFlowThisFunc(("uFunction=%RU32 (%s), uParms=%RU32\n", uFunction, GstCtrlHostFnName((guestControl::eHostFn)uFunction), uParms)); 2470 2471 /* HACK ALERT! We extend the first parameter to 64-bit and use the 2472 two topmost bits for call destination information. */ 2473 Assert(fDst == VBOX_GUESTCTRL_DST_SESSION || fDst == VBOX_GUESTCTRL_DST_ROOT_SVC || fDst == VBOX_GUESTCTRL_DST_BOTH); 2474 Assert(paParms[0].type == VBOX_HGCM_SVC_PARM_32BIT); 2475 paParms[0].type = VBOX_HGCM_SVC_PARM_64BIT; 2476 paParms[0].u.uint64 = (uint64_t)paParms[0].u.uint32 | fDst; 2477 2478 /* Make the call. */ 2470 2479 int vrc = pVMMDev->hgcmHostCall(HGCMSERVICE_NAME, uFunction, uParms, paParms); 2471 2480 if (RT_FAILURE(vrc)) -
trunk/src/VBox/Main/src-client/HGCMThread.cpp
r75747 r75798 556 556 int HGCMThread::MsgComplete(HGCMMsgCore *pMsg, int32_t result) 557 557 { 558 LogFlow(("HGCMThread::MsgComplete: thread = %p, pMsg = %p \n", this, pMsg));558 LogFlow(("HGCMThread::MsgComplete: thread = %p, pMsg = %p, result = %Rrc (%d)\n", this, pMsg, result, result)); 559 559 560 560 AssertRelease(pMsg->m_pThread == this); … … 740 740 } 741 741 742 int hgcmMsgComplete(HGCMMsgCore *pMsg, int32_t u32Result)743 { 744 LogFlow(("MAIN::hgcmMsgComplete: pMsg = %p \n", pMsg));742 int hgcmMsgComplete(HGCMMsgCore *pMsg, int32_t rcMsg) 743 { 744 LogFlow(("MAIN::hgcmMsgComplete: pMsg = %p, rcMsg = %Rrc (%d)\n", pMsg, rcMsg, rcMsg)); 745 745 746 746 int rc; 747 747 if (pMsg) 748 rc = pMsg->Thread()->MsgComplete(pMsg, u32Result);748 rc = pMsg->Thread()->MsgComplete(pMsg, rcMsg); 749 749 else 750 750 rc = VINF_SUCCESS; 751 751 752 LogFlow(("MAIN::hgcmMsgComplete: pMsg = %p, rc = %Rrc\n", pMsg, rc));752 LogFlow(("MAIN::hgcmMsgComplete: pMsg = %p, rcMsg =%Rrc (%d), returns rc = %Rrc\n", pMsg, rcMsg, rcMsg, rc)); 753 753 return rc; 754 754 }
Note:
See TracChangeset
for help on using the changeset viewer.