VirtualBox

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


Ignore:
Timestamp:
Nov 16, 2018 1:24:39 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
126657
Message:

VMMDev,Main,HostServices: More profiling of HGCM guest call processing.

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

Legend:

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

    r75495 r75500  
    1616 */
    1717
    18 #ifndef __HGCM_h__
    19 #define __HGCM_h__
     18#ifndef ___HGCM_h_
     19#define ___HGCM_h_
    2020
    2121#include <VBox/cdefs.h>
     
    3434
    3535RT_C_DECLS_BEGIN
    36 int HGCMHostInit (void);
    37 int HGCMHostShutdown (void);
     36int HGCMHostInit(void);
     37int HGCMHostShutdown(void);
    3838
    39 int HGCMHostReset (void);
     39int HGCMHostReset(void);
    4040
    41 int HGCMHostLoad (const char *pszServiceLibrary, const char *pszServiceName, PUVM pUVM);
     41int HGCMHostLoad(const char *pszServiceLibrary, const char *pszServiceName, PUVM pUVM);
    4242
    43 int HGCMHostRegisterServiceExtension (HGCMSVCEXTHANDLE *pHandle, const char *pszServiceName, PFNHGCMSVCEXT pfnExtension, void *pvExtension);
    44 void HGCMHostUnregisterServiceExtension (HGCMSVCEXTHANDLE handle);
     43int HGCMHostRegisterServiceExtension(HGCMSVCEXTHANDLE *pHandle, const char *pszServiceName, PFNHGCMSVCEXT pfnExtension, void *pvExtension);
     44void HGCMHostUnregisterServiceExtension(HGCMSVCEXTHANDLE handle);
    4545
    46 int HGCMGuestConnect (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, const char *pszServiceName, uint32_t *pClientID);
    47 int HGCMGuestDisconnect (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, uint32_t clientID);
    48 int HGCMGuestCall (PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, uint32_t clientID, uint32_t function, uint32_t cParms, VBOXHGCMSVCPARM *paParms);
     46int HGCMGuestConnect(PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, const char *pszServiceName, uint32_t *pClientID);
     47int HGCMGuestDisconnect(PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, uint32_t clientID);
     48int HGCMGuestCall(PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmdPtr, uint32_t clientID, uint32_t function, uint32_t cParms,
     49                  VBOXHGCMSVCPARM *paParms, uint64_t tsArrival);
    4950
    50 int HGCMHostCall (const char *pszServiceName, uint32_t function, uint32_t cParms, VBOXHGCMSVCPARM aParms[]);
     51int HGCMHostCall(const char *pszServiceName, uint32_t function, uint32_t cParms, VBOXHGCMSVCPARM aParms[]);
    5152
    5253#ifdef VBOX_WITH_CRHGSMI
    53 int HGCMHostSvcHandleCreate (const char *pszServiceName, HGCMCVSHANDLE * phSvc);
    54 int HGCMHostSvcHandleDestroy (HGCMCVSHANDLE hSvc);
    55 int HGCMHostFastCallAsync (HGCMCVSHANDLE hSvc, uint32_t function, PVBOXHGCMSVCPARM pParm, PHGCMHOSTFASTCALLCB pfnCompletion, void *pvCompletion);
     54int HGCMHostSvcHandleCreate(const char *pszServiceName, HGCMCVSHANDLE * phSvc);
     55int HGCMHostSvcHandleDestroy(HGCMCVSHANDLE hSvc);
     56int HGCMHostFastCallAsync(HGCMCVSHANDLE hSvc, uint32_t function, PVBOXHGCMSVCPARM pParm,
     57                          PHGCMHOSTFASTCALLCB pfnCompletion, void *pvCompletion);
    5658#endif
    5759
    58 int HGCMHostSaveState (PSSMHANDLE pSSM);
    59 int HGCMHostLoadState (PSSMHANDLE pSSM);
     60int HGCMHostSaveState(PSSMHANDLE pSSM);
     61int HGCMHostLoadState(PSSMHANDLE pSSM);
    6062
    6163RT_C_DECLS_END
    6264
    63 #endif /* !__HGCM_h__ */
     65#endif /* !___HGCM_h_ */
     66
  • trunk/src/VBox/Main/src-client/HGCM.cpp

    r75498 r75500  
    191191
    192192        int GuestCall(PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmd, uint32_t u32ClientId,
    193                       uint32_t u32Function, uint32_t cParms, VBOXHGCMSVCPARM aParms[]);
     193                      uint32_t u32Function, uint32_t cParms, VBOXHGCMSVCPARM aParms[], uint64_t tsArrival);
    194194};
    195195
     
    448448
    449449        VBOXHGCMSVCPARM *paParms;
     450
     451        /** The STAM_GET_TS() value when the request arrived. */
     452        uint64_t tsArrival;
    450453};
    451454
     
    637640                    pSvc->m_fntable.pfnCall(pSvc->m_fntable.pvService, (VBOXHGCMCALLHANDLE)pMsg, pMsg->u32ClientId,
    638641                                            HGCM_CLIENT_DATA(pSvc, pClient), pMsg->u32Function,
    639                                             pMsg->cParms, pMsg->paParms);
     642                                            pMsg->cParms, pMsg->paParms, pMsg->tsArrival);
    640643
    641644                    hgcmObjDereference(pClient);
     
    16621665 * @param cParms         Number of parameters.
    16631666 * @param paParms        Pointer to array of parameters.
     1667 * @param tsArrival      The STAM_GET_TS() value when the request arrived.
    16641668 * @return VBox rc.
    16651669 */
    16661670int HGCMService::GuestCall(PPDMIHGCMPORT pHGCMPort, PVBOXHGCMCMD pCmd, uint32_t u32ClientId, uint32_t u32Function,
    1667                            uint32_t cParms, VBOXHGCMSVCPARM paParms[])
     1671                           uint32_t cParms, VBOXHGCMSVCPARM paParms[], uint64_t tsArrival)
    16681672{
    16691673    HGCMMSGHANDLE hMsg = 0;
     
    16861690        pMsg->cParms      = cParms;
    16871691        pMsg->paParms     = paParms;
     1692        pMsg->tsArrival   = tsArrival;
    16881693
    16891694        hgcmObjDereference(pMsg);
     
    24622467 * @param cParms         Number of parameters.
    24632468 * @param paParms        Pointer to array of parameters.
     2469 * @param tsArrival      The STAM_GET_TS() value when the request arrived.
    24642470 * @return VBox rc.
    24652471 */
     
    24692475                  uint32_t u32Function,
    24702476                  uint32_t cParms,
    2471                   VBOXHGCMSVCPARM *paParms)
     2477                  VBOXHGCMSVCPARM *paParms,
     2478                  uint64_t tsArrival)
    24722479{
    24732480    LogFlowFunc(("pHGCMPort = %p, pCmd = %p, u32ClientId = %d, u32Function = %d, cParms = %d, paParms = %p\n",
     
    24892496
    24902497        /* Forward the message to the service thread. */
    2491         rc = pClient->pService->GuestCall(pHGCMPort, pCmd, u32ClientId, u32Function, cParms, paParms);
     2498        rc = pClient->pService->GuestCall(pHGCMPort, pCmd, u32ClientId, u32Function, cParms, paParms, tsArrival);
    24922499
    24932500        hgcmObjDereference(pClient);
  • trunk/src/VBox/Main/src-client/VMMDevInterface.cpp

    r75495 r75500  
    642642
    643643static DECLCALLBACK(int) iface_hgcmCall(PPDMIHGCMCONNECTOR pInterface, PVBOXHGCMCMD pCmd, uint32_t u32ClientID,
    644                                         uint32_t u32Function, uint32_t cParms, PVBOXHGCMSVCPARM paParms)
     644                                        uint32_t u32Function, uint32_t cParms, PVBOXHGCMSVCPARM paParms, uint64_t tsArrival)
    645645{
    646646    Log9(("Enter\n"));
     
    651651        return VERR_INVALID_STATE;
    652652
    653     return HGCMGuestCall(pDrv->pHGCMPort, pCmd, u32ClientID, u32Function, cParms, paParms);
     653    return HGCMGuestCall(pDrv->pHGCMPort, pCmd, u32ClientID, u32Function, cParms, paParms, tsArrival);
    654654}
    655655
Note: See TracChangeset for help on using the changeset viewer.

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