VirtualBox

Changeset 58976 in vbox


Ignore:
Timestamp:
Dec 3, 2015 9:42:04 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
104498
Message:

VBoxTpG,SUPDrv: Extended VTGDESCPROVIDER again to facilitate HM in ring-0; major support driver version bump.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/VBoxTpG.h

    r58920 r58976  
    296296typedef struct VTGDESCPROVIDER
    297297{
    298     VTGSTROFF       offName;
    299     uint16_t        iFirstProbe;
    300     uint16_t        cProbes;
    301     VTGDESCATTR     AttrSelf;
    302     VTGDESCATTR     AttrModules;
    303     VTGDESCATTR     AttrFunctions;
    304     VTGDESCATTR     AttrNames;
    305     VTGDESCATTR     AttrArguments;
    306     uint8_t         bReserved;
    307     uint32_t        cProbesEnabled;
     298    VTGSTROFF           offName;
     299    uint16_t            iFirstProbe;
     300    uint16_t            cProbes;
     301    VTGDESCATTR         AttrSelf;
     302    VTGDESCATTR         AttrModules;
     303    VTGDESCATTR         AttrFunctions;
     304    VTGDESCATTR         AttrNames;
     305    VTGDESCATTR         AttrArguments;
     306    uint8_t             bReserved;
     307    uint32_t volatile   cProbesEnabled;
     308    /** This increases every time a probe is enabled or disabled.
     309     * Can be used in non-ring-3 context via PROVIDER_GET_SETTINGS_SEQ_NO() in
     310     * order to only configure probes related stuff when actually required.  */
     311    uint32_t volatile   uSettingsSerialNo;
    308312} VTGDESCPROVIDER;
    309 AssertCompileSize(VTGDESCPROVIDER, 28);
     313AssertCompileSize(VTGDESCPROVIDER, 32);
    310314/** Pointer to a VTG provider descriptor. */
    311315typedef VTGDESCPROVIDER    *PVTGDESCPROVIDER;
     
    414418
    415419/** The current VTGOBJHDR::szMagic value. */
    416 #define VTGOBJHDR_MAGIC     "VTG Object Header v1.6\0"
     420#define VTGOBJHDR_MAGIC     "VTG Object Header v1.7\0"
    417421
    418422/** The name of the VTG data object header symbol in the object file. */
  • trunk/src/VBox/HostDrivers/Support/SUPDrv-dtrace.cpp

    r58920 r58976  
    452452                ASMAtomicIncU32(&pProv->pacProbeEnabled[idxProbe]);
    453453                ASMAtomicIncU32(&pProv->pDesc->cProbesEnabled);
     454                ASMAtomicIncU32(&pProv->pDesc->uSettingsSerialNo);
    454455            }
    455456        }
     
    462463                ASMAtomicIncU32(&pProv->paR0Probes[idxProbe].cEnabled);
    463464                ASMAtomicIncU32(&pProv->pDesc->cProbesEnabled);
     465                ASMAtomicIncU32(&pProv->pDesc->uSettingsSerialNo);
    464466            }
    465467
     
    499501                ASMAtomicDecU32(&pProv->pacProbeEnabled[idxProbe]);
    500502                ASMAtomicIncU32(&pProv->pDesc->cProbesEnabled);
     503                ASMAtomicIncU32(&pProv->pDesc->uSettingsSerialNo);
    501504            }
    502505        }
     
    509512                ASMAtomicDecU32(&pProv->paR0Probes[idxProbe].cEnabled);
    510513                ASMAtomicDecU32(&pProv->pDesc->cProbesEnabled);
     514                ASMAtomicIncU32(&pProv->pDesc->uSettingsSerialNo);
    511515            }
    512516
  • trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h

    r58920 r58976  
    215215 *          - nothing.
    216216 */
    217 #define SUPDRV_IOC_VERSION                              0x00250000
     217#define SUPDRV_IOC_VERSION                              0x00260000
    218218
    219219/** SUP_IOCTL_COOKIE. */
  • trunk/src/VBox/HostDrivers/Support/SUPDrvTracer.cpp

    r58920 r58976  
    539539        MY_CHECK_RET(pProvider->bReserved == 0, VERR_SUPDRV_VTG_BAD_PROVIDER);
    540540        MY_CHECK_RET(pProvider->cProbesEnabled == 0, VERR_SUPDRV_VTG_BAD_PROVIDER);
     541        MY_CHECK_RET(pProvider->uSettingsSerialNo == 0, VERR_SUPDRV_VTG_BAD_PROVIDER);
    541542    }
    542543
  • trunk/src/bldprogs/VBoxTpG.cpp

    r58964 r58976  
    533533                    "                ;0         1         2         3\n"
    534534                    "                ;012345678901234567890123456789012\n"
    535                     "    db          'VTG Object Header v1.6', 0, 0\n"
     535                    "    db          'VTG Object Header v1.7', 0, 0\n"
    536536                    "    dd          %u\n"
    537537                    "    dd          NAME(g_acVTGProbeEnabled_End) - NAME(g_VTGObjHeader)\n"
     
    740740                        "VTG_GLOBAL g_cVTGProviderProbesEnabled_%s, data\n"
    741741                        "    dd 0\n"
     742                        "VTG_GLOBAL g_cVTGProviderSettingsSeqNo_%s, data\n"
     743                        "    dd 0\n"
    742744                        ,
    743745                        iProvider, pProvider->pszName,
     
    750752                        pProvider->AttrName.enmCode,        pProvider->AttrName.enmData,        pProvider->AttrName.enmDataDep,
    751753                        pProvider->AttrArguments.enmCode,   pProvider->AttrArguments.enmData,   pProvider->AttrArguments.enmDataDep,
     754                        pProvider->pszName,
    752755                        pProvider->pszName);
    753756        iProvider++;
     
    10041007            generateProviderDefineName(szTmp, sizeof(szTmp), pProv->pszName);
    10051008            ScmStreamPrintf(pStrm,
    1006                             "extern uint32_t       g_cVTGProviderProbesEnabled_%s;\n"
     1009                            "extern uint32_t const volatile g_cVTGProviderProbesEnabled_%s;\n"
    10071010                            "# define %s_ANY_PROBES_ENABLED() \\\n"
    10081011                            "    (RT_UNLIKELY(g_cVTGProviderProbesEnabled_%s != 0))\n"
     1012                            "extern uint32_t const volatile g_cVTGProviderSettingsSeqNo_%s;\n"
     1013                            "# define %s_GET_SETTINGS_SEQ_NO() (g_cVTGProviderSettingsSeqNo_%s)\n"
    10091014                            "\n",
     1015                            pProv->pszName,
     1016                            szTmp, pProv->pszName,
    10101017                            pProv->pszName,
    10111018                            szTmp, pProv->pszName);
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