VirtualBox

Changeset 91906 in vbox


Ignore:
Timestamp:
Oct 20, 2021 5:53:08 PM (3 years ago)
Author:
vboxsync
Message:

VMM/PDMDevHlp: Stripped down the queue methods (completely unused at the moment). bugref:9218

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/pdmdev.h

    r91897 r91906  
    24242424
    24252425/** Current PDMDEVHLPR3 version number. */
    2426 #define PDM_DEVHLPR3_VERSION                    PDM_VERSION_MAKE_PP(0xffe7, 50, 1)
     2426#define PDM_DEVHLPR3_VERSION                    PDM_VERSION_MAKE_PP(0xffe7, 51, 0)
    24272427
    24282428/**
     
    37083708     * @param   pszName             The queue base name. The instance number will be
    37093709     *                              appended automatically.
    3710      * @param   ppQueue             Where to store the queue pointer on success.
    3711      * @thread  The emulation thread.
    3712      * @remarks The device critical section will NOT be entered before calling the
    3713      *          callback.  No locks will be held, but for now it's safe to assume
    3714      *          that only one EMT will do queue callbacks at any one time.
    3715      */
    3716     DECLR3CALLBACKMEMBER(int, pfnQueueCreatePtr,(PPDMDEVINS pDevIns, size_t cbItem, uint32_t cItems, uint32_t cMilliesInterval,
    3717                                                  PFNPDMQUEUEDEV pfnCallback, bool fRZEnabled, const char *pszName,
    3718                                                  PPDMQUEUE *ppQueue));
    3719 
    3720     /**
    3721      * Create a queue.
    3722      *
    3723      * @returns VBox status code.
    3724      * @param   pDevIns             The device instance.
    3725      * @param   cbItem              The size of a queue item.
    3726      * @param   cItems              The number of items in the queue.
    3727      * @param   cMilliesInterval    The number of milliseconds between polling the queue.
    3728      *                              If 0 then the emulation thread will be notified whenever an item arrives.
    3729      * @param   pfnCallback         The consumer function.
    3730      * @param   fRZEnabled          Set if the queue should work in RC and R0.
    3731      * @param   pszName             The queue base name. The instance number will be
    3732      *                              appended automatically.
    37333710     * @param   phQueue             Where to store the queue handle on success.
    37343711     * @thread  EMT(0)
     
    37413718                                              PDMQUEUEHANDLE *phQueue));
    37423719
    3743     DECLR3CALLBACKMEMBER(PPDMQUEUE, pfnQueueToPtr,(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue));
    37443720    DECLR3CALLBACKMEMBER(PPDMQUEUEITEMCORE, pfnQueueAlloc,(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue));
    37453721    DECLR3CALLBACKMEMBER(void, pfnQueueInsert,(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem));
    3746     DECLR3CALLBACKMEMBER(void, pfnQueueInsertEx,(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem, uint64_t cNanoMaxDelay));
    37473722    DECLR3CALLBACKMEMBER(bool, pfnQueueFlushIfNecessary,(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue));
    37483723    /** @} */
     
    52965271    /** @name Exported PDM Queue Functions
    52975272     * @{ */
    5298     DECLR0CALLBACKMEMBER(PPDMQUEUE, pfnQueueToPtr,(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue));
    52995273    DECLR0CALLBACKMEMBER(PPDMQUEUEITEMCORE, pfnQueueAlloc,(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue));
    53005274    DECLR0CALLBACKMEMBER(void, pfnQueueInsert,(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem));
    5301     DECLR0CALLBACKMEMBER(void, pfnQueueInsertEx,(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem, uint64_t cNanoMaxDelay));
    53025275    DECLR0CALLBACKMEMBER(bool, pfnQueueFlushIfNecessary,(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue));
    53035276    /** @} */
     
    55225495
    55235496/** Current PDMDEVHLP version number. */
    5524 #define PDM_DEVHLPR0_VERSION                    PDM_VERSION_MAKE(0xffe5, 21, 0)
     5497#define PDM_DEVHLPR0_VERSION                    PDM_VERSION_MAKE(0xffe5, 22, 0)
    55255498
    55265499
     
    76507623
    76517624/**
    7652  * @copydoc PDMDEVHLPR3::pfnQueueCreatePtr
     7625 * @copydoc PDMDEVHLPR3::pfnQueueCreate
    76537626 */
    76547627DECLINLINE(int) PDMDevHlpQueueCreate(PPDMDEVINS pDevIns, size_t cbItem, uint32_t cItems, uint32_t cMilliesInterval,
    7655                                      PFNPDMQUEUEDEV pfnCallback, bool fRZEnabled, const char *pszName, PPDMQUEUE *ppQueue)
    7656 {
    7657     return pDevIns->pHlpR3->pfnQueueCreatePtr(pDevIns, cbItem, cItems, cMilliesInterval, pfnCallback, fRZEnabled, pszName, ppQueue);
    7658 }
    7659 
    7660 /**
    7661  * @copydoc PDMDEVHLPR3::pfnQueueCreate
    7662  */
    7663 DECLINLINE(int) PDMDevHlpQueueCreateNew(PPDMDEVINS pDevIns, size_t cbItem, uint32_t cItems, uint32_t cMilliesInterval,
    7664                                         PFNPDMQUEUEDEV pfnCallback, bool fRZEnabled, const char *pszName, PDMQUEUEHANDLE *phQueue)
     7628                                     PFNPDMQUEUEDEV pfnCallback, bool fRZEnabled, const char *pszName, PDMQUEUEHANDLE *phQueue)
    76657629{
    76667630    return pDevIns->pHlpR3->pfnQueueCreate(pDevIns, cbItem, cItems, cMilliesInterval, pfnCallback, fRZEnabled, pszName, phQueue);
     
    76837647{
    76847648    pDevIns->CTX_SUFF(pHlp)->pfnQueueInsert(pDevIns, hQueue, pItem);
    7685 }
    7686 
    7687 /**
    7688  * @copydoc PDMDEVHLPR3::pfnQueueInsertEx
    7689  */
    7690 DECLINLINE(void) PDMDevHlpQueueInsertEx(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem, uint64_t cNanoMaxDelay)
    7691 {
    7692     pDevIns->CTX_SUFF(pHlp)->pfnQueueInsertEx(pDevIns, hQueue, pItem, cNanoMaxDelay);
    76937649}
    76947650
  • trunk/src/VBox/VMM/VMMR0/PDMR0DevHlp.cpp

    r90997 r91906  
    572572
    573573
    574 /** @interface_method_impl{PDMDEVHLPR0,pfnQueueToPtr} */
    575 static DECLCALLBACK(PPDMQUEUE)  pdmR0DevHlp_QueueToPtr(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue)
    576 {
    577     PDMDEV_ASSERT_DEVINS(pDevIns);
    578     RT_NOREF(pDevIns);
     574/** Converts a queue handle to a ring-0 queue pointer. */
     575DECLINLINE(PPDMQUEUE)  pdmR0DevHlp_QueueToPtr(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue)
     576{
     577    PDMDEV_ASSERT_DEVINS(pDevIns);
    579578    return (PPDMQUEUE)MMHyperR3ToCC(pDevIns->Internal.s.pGVM, hQueue);
    580579}
     
    592591{
    593592    return PDMQueueInsert(pdmR0DevHlp_QueueToPtr(pDevIns, hQueue), pItem);
    594 }
    595 
    596 
    597 /** @interface_method_impl{PDMDEVHLPR0,pfnQueueInsertEx} */
    598 static DECLCALLBACK(void) pdmR0DevHlp_QueueInsertEx(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem,
    599                                                     uint64_t cNanoMaxDelay)
    600 {
    601     return PDMQueueInsertEx(pdmR0DevHlp_QueueToPtr(pDevIns, hQueue), pItem, cNanoMaxDelay);
    602593}
    603594
     
    13711362    pdmR0DevHlp_TMTimeVirtGetFreq,
    13721363    pdmR0DevHlp_TMTimeVirtGetNano,
    1373     pdmR0DevHlp_QueueToPtr,
    13741364    pdmR0DevHlp_QueueAlloc,
    13751365    pdmR0DevHlp_QueueInsert,
    1376     pdmR0DevHlp_QueueInsertEx,
    13771366    pdmR0DevHlp_QueueFlushIfNecessary,
    13781367    pdmR0DevHlp_TaskTrigger,
     
    14801469    pdmR0DevHlp_TMTimeVirtGetFreq,
    14811470    pdmR0DevHlp_TMTimeVirtGetNano,
    1482     pdmR0DevHlp_QueueToPtr,
    14831471    pdmR0DevHlp_QueueAlloc,
    14841472    pdmR0DevHlp_QueueInsert,
    1485     pdmR0DevHlp_QueueInsertEx,
    14861473    pdmR0DevHlp_QueueFlushIfNecessary,
    14871474    pdmR0DevHlp_TaskTrigger,
  • trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp

    r91897 r91906  
    23692369
    23702370
    2371 /** @interface_method_impl{PDMDEVHLPR3,pfnQueueCreatePtr} */
    2372 static DECLCALLBACK(int) pdmR3DevHlp_QueueCreatePtr(PPDMDEVINS pDevIns, size_t cbItem, uint32_t cItems, uint32_t cMilliesInterval,
    2373                                                     PFNPDMQUEUEDEV pfnCallback, bool fRZEnabled, const char *pszName, PPDMQUEUE *ppQueue)
    2374 {
    2375     PDMDEV_ASSERT_DEVINS(pDevIns);
    2376     LogFlow(("pdmR3DevHlp_QueueCreatePtr: caller='%s'/%d: cbItem=%#x cItems=%#x cMilliesInterval=%u pfnCallback=%p fRZEnabled=%RTbool pszName=%p:{%s} ppQueue=%p\n",
    2377              pDevIns->pReg->szName, pDevIns->iInstance, cbItem, cItems, cMilliesInterval, pfnCallback, fRZEnabled, pszName, pszName, ppQueue));
    2378 
    2379     PVM pVM = pDevIns->Internal.s.pVMR3;
    2380     VM_ASSERT_EMT(pVM);
    2381 
    2382     if (pDevIns->iInstance > 0)
    2383     {
    2384         pszName = MMR3HeapAPrintf(pVM, MM_TAG_PDM_DEVICE_DESC, "%s_%u", pszName, pDevIns->iInstance);
    2385         AssertLogRelReturn(pszName, VERR_NO_MEMORY);
    2386     }
    2387 
    2388     int rc = PDMR3QueueCreateDevice(pVM, pDevIns, cbItem, cItems, cMilliesInterval, pfnCallback, fRZEnabled, pszName, ppQueue);
    2389 
    2390     LogFlow(("pdmR3DevHlp_QueueCreatePtr: caller='%s'/%d: returns %Rrc *ppQueue=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, rc, *ppQueue));
    2391     return rc;
    2392 }
    2393 
    2394 
    23952371/** @interface_method_impl{PDMDEVHLPR3,pfnQueueCreate} */
    23962372static DECLCALLBACK(int) pdmR3DevHlp_QueueCreate(PPDMDEVINS pDevIns, size_t cbItem, uint32_t cItems, uint32_t cMilliesInterval,
     
    24202396
    24212397
    2422 /** @interface_method_impl{PDMDEVHLPR3,pfnQueueToPtr} */
    2423 static DECLCALLBACK(PPDMQUEUE)  pdmR3DevHlp_QueueToPtr(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue)
     2398/**
     2399 * Converts a queue handle to a queue pointer.
     2400 */
     2401DECLINLINE(PPDMQUEUE)  pdmR3DevHlp_QueueToPtr(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue)
    24242402{
    24252403    PDMDEV_ASSERT_DEVINS(pDevIns);
     
    24402418{
    24412419    return PDMQueueInsert(pdmR3DevHlp_QueueToPtr(pDevIns, hQueue), pItem);
    2442 }
    2443 
    2444 
    2445 /** @interface_method_impl{PDMDEVHLPR3,pfnQueueInsertEx} */
    2446 static DECLCALLBACK(void) pdmR3DevHlp_QueueInsertEx(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem,
    2447                                                     uint64_t cNanoMaxDelay)
    2448 {
    2449     return PDMQueueInsertEx(pdmR3DevHlp_QueueToPtr(pDevIns, hQueue), pItem, cNanoMaxDelay);
    24502420}
    24512421
     
    45704540    pdmR3DevHlp_DriverDetach,
    45714541    pdmR3DevHlp_DriverReconfigure,
    4572     pdmR3DevHlp_QueueCreatePtr,
    45734542    pdmR3DevHlp_QueueCreate,
    4574     pdmR3DevHlp_QueueToPtr,
    45754543    pdmR3DevHlp_QueueAlloc,
    45764544    pdmR3DevHlp_QueueInsert,
    4577     pdmR3DevHlp_QueueInsertEx,
    45784545    pdmR3DevHlp_QueueFlushIfNecessary,
    45794546    pdmR3DevHlp_TaskCreate,
     
    49384905    pdmR3DevHlp_DriverDetach,
    49394906    pdmR3DevHlp_DriverReconfigure,
    4940     pdmR3DevHlp_QueueCreatePtr,
    49414907    pdmR3DevHlp_QueueCreate,
    4942     pdmR3DevHlp_QueueToPtr,
    49434908    pdmR3DevHlp_QueueAlloc,
    49444909    pdmR3DevHlp_QueueInsert,
    4945     pdmR3DevHlp_QueueInsertEx,
    49464910    pdmR3DevHlp_QueueFlushIfNecessary,
    49474911    pdmR3DevHlp_TaskCreate,
     
    54635427    pdmR3DevHlp_DriverDetach,
    54645428    pdmR3DevHlp_DriverReconfigure,
    5465     pdmR3DevHlp_QueueCreatePtr,
    54665429    pdmR3DevHlp_QueueCreate,
    5467     pdmR3DevHlp_QueueToPtr,
    54685430    pdmR3DevHlp_QueueAlloc,
    54695431    pdmR3DevHlp_QueueInsert,
    5470     pdmR3DevHlp_QueueInsertEx,
    54715432    pdmR3DevHlp_QueueFlushIfNecessary,
    54725433    pdmR3DevHlp_TaskCreate,
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