VirtualBox

Ignore:
Timestamp:
Apr 3, 2012 7:57:32 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
77252
Message:

Some more tracer code.

Location:
trunk/src/VBox/HostDrivers/Support
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/Makefile.kmk

    r40756 r40759  
    310310#
    311311if1of ($(KBUILD_TARGET), darwin linux solaris)
    312  # Leopard (x86) and Snow Leopard (x86/amd64)
    313  SYSMODS += VBoxDrv
     312 ifdef VBOX_WITH_VBOXDRV
     313  SYSMODS += VBoxDrv
     314 endif
    314315 VBoxDrv_TEMPLATE         = VBOXR0DRV
    315316 VBoxDrv_NAME.freebsd     = vboxdrv
  • trunk/src/VBox/HostDrivers/Support/SUPDrv-tracer.cpp

    r40756 r40759  
    875875
    876876/**
     877 * Called when a session is being cleaned up.
     878 *
     879 * @param   pDevExt             The device extension structure.
     880 * @param   pSession            The session that is being torn down.
     881 */
     882void VBOXCALL supdrvTracerCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession)
     883{
     884    /*
     885     * If ring-0 session, make sure it has deregistered VTG objects and the tracer.
     886     */
     887    if (pSession->R0Process == NIL_RTR0PROCESS)
     888    {
     889        SUPDRVTPPROVIDER *pNextProv;
     890        SUPDRVTPPROVIDER *pProv;
     891
     892        RTSemFastMutexRequest(pDevExt->mtxTracer);
     893        RTListForEachSafe(&pDevExt->TracerProviderList, pProv, pProvNext, SUPDRVTPPROVIDER, ListEntry)
     894        {
     895            if (pProv->pSession == pSession)
     896            {
     897                RTListNodeRemove(&pProv->ListEntry);
     898                supdrvTracerDeregisterVtgObj(pDevExt, pProv);
     899            }
     900        }
     901        RTSemFastMutexRelease(pDevExt->mtxTracer);
     902
     903        (void)SUPR0TracerDeregister(pSession);
     904    }
     905
     906    /*
     907     * Clean up instance data the trace may have associated with the session.
     908     */
     909    if (pSession->uTracerData)
     910    {
     911        RTSemFastMutexRequest(pDevExt->mtxTracer);
     912        if (   pSession->uTracerData
     913            && pDevExt->pTracerOps)
     914            pSession->pTracerOps->pfnCloseTrace(pSession->pTracerOps, pSession, pSession->uTracerData);
     915        pSession->uTracerData = 0;
     916        RTSemFastMutexRelease(pDevExt->mtxTracer);
     917    }
     918}
     919
     920
     921/**
    877922 * Early module initialization hook.
    878923 *
     
    891936        /** @todo  */
    892937        pDevExt->TracerHlp.uEndVersion = SUPDRVTRACERHLP_VERSION;
    893 
    894938        RTListInit(&pDevExt->TracerProviderList);
    895939        RTListInit(&pDevExt->TracerProviderZombieList);
     940
    896941        rc = supdrvTracerRegisterVtgObj(pDevExt, &g_VTGObjHeader, _1M, NULL /*pImage*/, NULL /*pSession*/, "vboxdrv");
    897942        if (RT_SUCCESS(rc))
  • trunk/src/VBox/HostDrivers/Support/SUPDrvInternal.h

    r40758 r40759  
    436436     * This is NIL_RTR0PROCESS for kernel sessions and valid for user ones. */
    437437    RTR0PROCESS                     R0Process;
     438#ifdef VBOX_WITH_SUPDRV_GENERIC_TRACER
     439    /** Per session tracer specfic data. */
     440    uintptr_t                       uTracerData;
     441#endif
    438442#ifndef SUPDRV_AGNOSTIC
    439443# if defined(RT_OS_DARWIN)
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