VirtualBox

Changeset 91905 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Oct 20, 2021 5:43:26 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
147710
Message:

Drv*,PDMDrvHlp: Added driver helpers for all queues operations, switching to PDMQUEUEHANDLE instead of PPDMQUEUE just like already done for the devices. bugref:10074

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/PDMDriver.cpp

    r91899 r91905  
    12531253
    12541254
     1255/**
     1256 * Conversion from handle to queue pointer (temporary).
     1257 */
     1258DECLINLINE(PPDMQUEUE) pdmR3DrvHlp_QueueToPtr(PPDMDRVINS pDrvIns, PDMQUEUEHANDLE hQueue)
     1259{
     1260    PDMDRV_ASSERT_DRVINS(pDrvIns);
     1261    RT_NOREF(pDrvIns);
     1262    return (PPDMQUEUE)hQueue;
     1263}
     1264
     1265
    12551266/** @interface_method_impl{PDMDRVHLPR3,pfnQueueCreate} */
    12561267static DECLCALLBACK(int) pdmR3DrvHlp_QueueCreate(PPDMDRVINS pDrvIns, uint32_t cbItem, uint32_t cItems, uint32_t cMilliesInterval,
    1257                                                  PFNPDMQUEUEDRV pfnCallback, const char *pszName, PPDMQUEUE *ppQueue)
    1258 {
    1259     PDMDRV_ASSERT_DRVINS(pDrvIns);
    1260     LogFlow(("pdmR3DrvHlp_PDMQueueCreate: caller='%s'/%d: cbItem=%d cItems=%d cMilliesInterval=%d pfnCallback=%p pszName=%p:{%s} ppQueue=%p\n",
    1261              pDrvIns->pReg->szName, pDrvIns->iInstance, cbItem, cItems, cMilliesInterval, pfnCallback, pszName, pszName, ppQueue));
     1268                                                 PFNPDMQUEUEDRV pfnCallback, const char *pszName, PDMQUEUEHANDLE *phQueue)
     1269{
     1270    PDMDRV_ASSERT_DRVINS(pDrvIns);
     1271    LogFlow(("pdmR3DrvHlp_PDMQueueCreate: caller='%s'/%d: cbItem=%d cItems=%d cMilliesInterval=%d pfnCallback=%p pszName=%p:{%s} phQueue=%p\n",
     1272             pDrvIns->pReg->szName, pDrvIns->iInstance, cbItem, cItems, cMilliesInterval, pfnCallback, pszName, pszName, phQueue));
    12621273    PVM pVM = pDrvIns->Internal.s.pVMR3;
    12631274    VM_ASSERT_EMT(pVM);
     
    12691280    }
    12701281
    1271     int rc = PDMR3QueueCreateDriver(pVM, pDrvIns, cbItem, cItems, cMilliesInterval, pfnCallback, pszName, ppQueue);
    1272 
    1273     LogFlow(("pdmR3DrvHlp_PDMQueueCreate: caller='%s'/%d: returns %Rrc *ppQueue=%p\n", pDrvIns->pReg->szName, pDrvIns->iInstance, rc, *ppQueue));
    1274     return rc;
    1275 }
     1282    PPDMQUEUE pQueue = NULL;
     1283    int rc = PDMR3QueueCreateDriver(pVM, pDrvIns, cbItem, cItems, cMilliesInterval, pfnCallback, pszName, &pQueue);
     1284    *phQueue = (PDMQUEUEHANDLE)pQueue;
     1285
     1286    LogFlow(("pdmR3DrvHlp_PDMQueueCreate: caller='%s'/%d: returns %Rrc *phQueue=%p\n", pDrvIns->pReg->szName, pDrvIns->iInstance, rc, *phQueue));
     1287    return rc;
     1288}
     1289
     1290
     1291/** @interface_method_impl{PDMDRVHLPR3,pfnQueueAlloc} */
     1292static DECLCALLBACK(PPDMQUEUEITEMCORE) pdmR3DrvHlp_QueueAlloc(PPDMDRVINS pDrvIns, PDMQUEUEHANDLE hQueue)
     1293{
     1294    return PDMQueueAlloc(pdmR3DrvHlp_QueueToPtr(pDrvIns, hQueue));
     1295}
     1296
     1297
     1298/** @interface_method_impl{PDMDRVHLPR3,pfnQueueInsert} */
     1299static DECLCALLBACK(void) pdmR3DrvHlp_QueueInsert(PPDMDRVINS pDrvIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem)
     1300{
     1301    return PDMQueueInsert(pdmR3DrvHlp_QueueToPtr(pDrvIns, hQueue), pItem);
     1302}
     1303
     1304
     1305/** @interface_method_impl{PDMDRVHLPR3,pfnQueueFlushIfNecessary} */
     1306static DECLCALLBACK(bool) pdmR3DrvHlp_QueueFlushIfNecessary(PPDMDRVINS pDrvIns, PDMQUEUEHANDLE hQueue)
     1307{
     1308    return PDMQueueFlushIfNecessary(pdmR3DrvHlp_QueueToPtr(pDrvIns, hQueue));
     1309}
     1310
    12761311
    12771312
     
    20322067    pdmR3DrvHlp_GetSupDrvSession,
    20332068    pdmR3DrvHlp_QueueCreate,
     2069    pdmR3DrvHlp_QueueAlloc,
     2070    pdmR3DrvHlp_QueueInsert,
     2071    pdmR3DrvHlp_QueueFlushIfNecessary,
    20342072    pdmR3DrvHlp_TMGetVirtualFreq,
    20352073    pdmR3DrvHlp_TMGetVirtualTime,
     
    22242262    NULL,
    22252263    NULL,
     2264    NULL,
     2265    NULL,
    22262266    PDM_DRVHLPR3_VERSION /* u32TheEnd */
    22272267};
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