VirtualBox

Changeset 81406 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Oct 21, 2019 12:30:54 PM (5 years ago)
Author:
vboxsync
Message:

PDM: Enabled PDM task code. Added bunch of new device helper functions. bugref:9218

Location:
trunk/src/VBox/VMM
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/Makefile.kmk

    r81333 r81406  
    138138        VMMR3/PDMCritSect.cpp \
    139139        VMMR3/PDMQueue.cpp \
     140        VMMR3/PDMR3Task.cpp \
    140141        VMMR3/PDMThread.cpp \
    141142        VMMR3/PGM.cpp \
     
    191192        VMMAll/PDMAllCritSectBoth.cpp \
    192193        VMMAll/PDMAllQueue.cpp \
     194        VMMAll/PDMAllTask.cpp \
    193195        VMMAll/PGMAll.cpp \
    194196        VMMAll/PGMAllHandler.cpp \
     
    521523        VMMAll/PDMAllCritSectBoth.cpp \
    522524        VMMAll/PDMAllQueue.cpp \
     525        VMMAll/PDMAllTask.cpp \
    523526        VMMAll/PGMAll.cpp \
    524527        VMMAll/PGMAllHandler.cpp \
  • trunk/src/VBox/VMM/VMMAll/PDMAllTask.cpp

    r81391 r81406  
    2323#include "PDMInternal.h"
    2424#include <VBox/vmm/pdmtask.h>
    25 #include <VBox/vmm/vm.h>
     25#include <VBox/vmm/gvm.h>
    2626#include <VBox/err.h>
    2727
     
    4646 * @thread  Any
    4747 */
    48 VMM_INT_DECL(int)   PDMTaskTrigger(PVM pVM, PDMTASKTYPE enmType, void *pvOwner, PDMTASKHANDLE hTask)
     48VMM_INT_DECL(int)   PDMTaskTrigger(PVMCC pVM, PDMTASKTYPE enmType, RTR3PTR pvOwner, PDMTASKHANDLE hTask)
    4949{
    5050    /*
     
    5454    AssertReturn(enmType >= PDMTASKTYPE_DEV && enmType <= PDMTASKTYPE_INTERNAL, VERR_NOT_OWNER);
    5555
    56     size_t const iTask    = hTask % RT_ELEMENTS(pVM->pdm.s.apTaskSets[0]->aTasks);
    57     size_t const iTaskSet = hTask / RT_ELEMENTS(pVM->pdm.s.apTaskSets[0]->aTasks);
     56    size_t const iTask    = hTask % RT_ELEMENTS(pVM->pdm.s.aTaskSets[0].aTasks);
     57    size_t const iTaskSet = hTask / RT_ELEMENTS(pVM->pdm.s.aTaskSets[0].aTasks);
    5858#ifdef IN_RING3
    5959    AssertReturn(iTaskSet < RT_ELEMENTS(pVM->pdm.s.apTaskSets), VERR_INVALID_HANDLE);
     
    108108 * @thread  Any
    109109 */
    110 VMM_INT_DECL(int)   PDMTaskTriggerInternal(PVM pVM, PDMTASKHANDLE hTask)
     110VMM_INT_DECL(int)   PDMTaskTriggerInternal(PVMCC pVM, PDMTASKHANDLE hTask)
    111111{
    112     return PDMTaskTrigger(pVM, PDMTASKTYPE_INTERNAL, pVM, hTask);
     112    return PDMTaskTrigger(pVM, PDMTASKTYPE_INTERNAL, pVM->pVMR3, hTask);
    113113}
    114114
  • trunk/src/VBox/VMM/VMMR0/PDMR0Device.cpp

    r81197 r81406  
    672672    LogFlow(("pdmR0DevHlp_TMTimeVirtGetNano: caller='%p'/%d\n", pDevIns, pDevIns->iInstance));
    673673    return TMVirtualToNano(pDevIns->Internal.s.pGVM, TMVirtualGet(pDevIns->Internal.s.pGVM));
     674}
     675
     676
     677/** @interface_method_impl{PDMDEVHLPR0,pfnQueueToPtr} */
     678static DECLCALLBACK(PPDMQUEUE)  pdmR0DevHlp_QueueToPtr(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue)
     679{
     680    PDMDEV_ASSERT_DEVINS(pDevIns);
     681    RT_NOREF(pDevIns);
     682    return (PPDMQUEUE)MMHyperR3ToCC(pDevIns->Internal.s.pGVM, hQueue);
     683}
     684
     685
     686/** @interface_method_impl{PDMDEVHLPR0,pfnQueueAlloc} */
     687static DECLCALLBACK(PPDMQUEUEITEMCORE) pdmR0DevHlp_QueueAlloc(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue)
     688{
     689    return PDMQueueAlloc(pdmR0DevHlp_QueueToPtr(pDevIns, hQueue));
     690}
     691
     692
     693/** @interface_method_impl{PDMDEVHLPR0,pfnQueueInsert} */
     694static DECLCALLBACK(void) pdmR0DevHlp_QueueInsert(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem)
     695{
     696    return PDMQueueInsert(pdmR0DevHlp_QueueToPtr(pDevIns, hQueue), pItem);
     697}
     698
     699
     700/** @interface_method_impl{PDMDEVHLPR0,pfnQueueInsertEx} */
     701static DECLCALLBACK(void) pdmR0DevHlp_QueueInsertEx(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem,
     702                                                    uint64_t cNanoMaxDelay)
     703{
     704    return PDMQueueInsertEx(pdmR0DevHlp_QueueToPtr(pDevIns, hQueue), pItem, cNanoMaxDelay);
     705}
     706
     707
     708/** @interface_method_impl{PDMDEVHLPR0,pfnQueueFlushIfNecessary} */
     709static DECLCALLBACK(bool) pdmR0DevHlp_QueueFlushIfNecessary(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue)
     710{
     711    return PDMQueueFlushIfNecessary(pdmR0DevHlp_QueueToPtr(pDevIns, hQueue));
     712}
     713
     714
     715/** @interface_method_impl{PDMDEVHLPR0,pfnTaskTrgger} */
     716static DECLCALLBACK(int) pdmR0DevHlp_TaskTrigger(PPDMDEVINS pDevIns, PDMTASKHANDLE hTask)
     717{
     718    PDMDEV_ASSERT_DEVINS(pDevIns);
     719    LogFlow(("pdmR0DevHlp_TaskTrigger: caller='%s'/%d: hTask=%RU64\n", pDevIns->pReg->szName, pDevIns->iInstance, hTask));
     720    PGVM pGVM = pDevIns->Internal.s.pGVM;
     721    VM_ASSERT_EMT(pGVM);
     722
     723    int rc = PDMTaskTrigger(pGVM, PDMTASKTYPE_DEV, pDevIns->pDevInsForR3, hTask);
     724
     725    LogFlow(("pdmR0DevHlp_TaskTrigger: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     726    return rc;
     727}
     728
     729
     730/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventSignal} */
     731static DECLCALLBACK(int) pdmR0DevHlp_SUPSemEventSignal(PPDMDEVINS pDevIns, SUPSEMEVENT hEvent)
     732{
     733    PDMDEV_ASSERT_DEVINS(pDevIns);
     734    LogFlow(("pdmR0DevHlp_SUPSemEventSignal: caller='%s'/%d: hEvent=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, hEvent));
     735    PGVM pGVM = pDevIns->Internal.s.pGVM;
     736    VM_ASSERT_EMT(pGVM);
     737
     738    int rc = SUPSemEventSignal(pGVM->pSession, hEvent);
     739
     740    LogFlow(("pdmR0DevHlp_SUPSemEventSignal: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     741    return rc;
     742}
     743
     744
     745/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventWaitNoResume} */
     746static DECLCALLBACK(int) pdmR0DevHlp_SUPSemEventWaitNoResume(PPDMDEVINS pDevIns, SUPSEMEVENT hEvent, uint32_t cMillies)
     747{
     748    PDMDEV_ASSERT_DEVINS(pDevIns);
     749    LogFlow(("pdmR0DevHlp_SUPSemEventWaitNoResume: caller='%s'/%d: hEvent=%p cNsTimeout=%RU32\n",
     750             pDevIns->pReg->szName, pDevIns->iInstance, hEvent, cMillies));
     751    PGVM pGVM = pDevIns->Internal.s.pGVM;
     752    VM_ASSERT_EMT(pGVM);
     753
     754    int rc = SUPSemEventWaitNoResume(pGVM->pSession, hEvent, cMillies);
     755
     756    LogFlow(("pdmR0DevHlp_SUPSemEventWaitNoResume: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     757    return rc;
     758}
     759
     760
     761/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventWaitNsAbsIntr} */
     762static DECLCALLBACK(int) pdmR0DevHlp_SUPSemEventWaitNsAbsIntr(PPDMDEVINS pDevIns, SUPSEMEVENT hEvent, uint64_t uNsTimeout)
     763{
     764    PDMDEV_ASSERT_DEVINS(pDevIns);
     765    LogFlow(("pdmR0DevHlp_SUPSemEventWaitNsAbsIntr: caller='%s'/%d: hEvent=%p uNsTimeout=%RU64\n",
     766             pDevIns->pReg->szName, pDevIns->iInstance, hEvent, uNsTimeout));
     767    PGVM pGVM = pDevIns->Internal.s.pGVM;
     768    VM_ASSERT_EMT(pGVM);
     769
     770    int rc = SUPSemEventWaitNsAbsIntr(pGVM->pSession, hEvent, uNsTimeout);
     771
     772    LogFlow(("pdmR0DevHlp_SUPSemEventWaitNsAbsIntr: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     773    return rc;
     774}
     775
     776
     777/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventWaitNsRelIntr} */
     778static DECLCALLBACK(int) pdmR0DevHlp_SUPSemEventWaitNsRelIntr(PPDMDEVINS pDevIns, SUPSEMEVENT hEvent, uint64_t cNsTimeout)
     779{
     780    PDMDEV_ASSERT_DEVINS(pDevIns);
     781    LogFlow(("pdmR0DevHlp_SUPSemEventWaitNsRelIntr: caller='%s'/%d: hEvent=%p cNsTimeout=%RU64\n",
     782             pDevIns->pReg->szName, pDevIns->iInstance, hEvent, cNsTimeout));
     783    PGVM pGVM = pDevIns->Internal.s.pGVM;
     784    VM_ASSERT_EMT(pGVM);
     785
     786    int rc = SUPSemEventWaitNsRelIntr(pGVM->pSession, hEvent, cNsTimeout);
     787
     788    LogFlow(("pdmR0DevHlp_SUPSemEventWaitNsRelIntr: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     789    return rc;
     790}
     791
     792
     793/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventGetResolution} */
     794static DECLCALLBACK(uint32_t) pdmR0DevHlp_SUPSemEventGetResolution(PPDMDEVINS pDevIns)
     795{
     796    PDMDEV_ASSERT_DEVINS(pDevIns);
     797    LogFlow(("pdmR0DevHlp_SUPSemEventGetResolution: caller='%s'/%d:\n", pDevIns->pReg->szName, pDevIns->iInstance));
     798    PGVM pGVM = pDevIns->Internal.s.pGVM;
     799    VM_ASSERT_EMT(pGVM);
     800
     801    uint32_t cNsResolution = SUPSemEventGetResolution(pGVM->pSession);
     802
     803    LogFlow(("pdmR0DevHlp_SUPSemEventGetResolution: caller='%s'/%d: returns %u\n", pDevIns->pReg->szName, pDevIns->iInstance, cNsResolution));
     804    return cNsResolution;
     805}
     806
     807
     808/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventMultiSignal} */
     809static DECLCALLBACK(int) pdmR0DevHlp_SUPSemEventMultiSignal(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti)
     810{
     811    PDMDEV_ASSERT_DEVINS(pDevIns);
     812    LogFlow(("pdmR0DevHlp_SUPSemEventMultiSignal: caller='%s'/%d: hEventMulti=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti));
     813    PGVM pGVM = pDevIns->Internal.s.pGVM;
     814    VM_ASSERT_EMT(pGVM);
     815
     816    int rc = SUPSemEventMultiSignal(pGVM->pSession, hEventMulti);
     817
     818    LogFlow(("pdmR0DevHlp_SUPSemEventMultiSignal: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     819    return rc;
     820}
     821
     822
     823/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventMultiReset} */
     824static DECLCALLBACK(int) pdmR0DevHlp_SUPSemEventMultiReset(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti)
     825{
     826    PDMDEV_ASSERT_DEVINS(pDevIns);
     827    LogFlow(("pdmR0DevHlp_SUPSemEventMultiReset: caller='%s'/%d: hEventMulti=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti));
     828    PGVM pGVM = pDevIns->Internal.s.pGVM;
     829    VM_ASSERT_EMT(pGVM);
     830
     831    int rc = SUPSemEventMultiReset(pGVM->pSession, hEventMulti);
     832
     833    LogFlow(("pdmR0DevHlp_SUPSemEventMultiReset: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     834    return rc;
     835}
     836
     837
     838/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventMultiWaitNoResume} */
     839static DECLCALLBACK(int) pdmR0DevHlp_SUPSemEventMultiWaitNoResume(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti,
     840                                                                  uint32_t cMillies)
     841{
     842    PDMDEV_ASSERT_DEVINS(pDevIns);
     843    LogFlow(("pdmR0DevHlp_SUPSemEventMultiWaitNoResume: caller='%s'/%d: hEventMulti=%p cMillies=%RU32\n",
     844             pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti, cMillies));
     845    PGVM pGVM = pDevIns->Internal.s.pGVM;
     846    VM_ASSERT_EMT(pGVM);
     847
     848    int rc = SUPSemEventMultiWaitNoResume(pGVM->pSession, hEventMulti, cMillies);
     849
     850    LogFlow(("pdmR0DevHlp_SUPSemEventMultiWaitNoResume: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     851    return rc;
     852}
     853
     854
     855/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventMultiWaitNsAbsIntr} */
     856static DECLCALLBACK(int) pdmR0DevHlp_SUPSemEventMultiWaitNsAbsIntr(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti,
     857                                                                   uint64_t uNsTimeout)
     858{
     859    PDMDEV_ASSERT_DEVINS(pDevIns);
     860    LogFlow(("pdmR0DevHlp_SUPSemEventMultiWaitNsAbsIntr: caller='%s'/%d: hEventMulti=%p uNsTimeout=%RU64\n",
     861             pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti, uNsTimeout));
     862    PGVM pGVM = pDevIns->Internal.s.pGVM;
     863    VM_ASSERT_EMT(pGVM);
     864
     865    int rc = SUPSemEventMultiWaitNsAbsIntr(pGVM->pSession, hEventMulti, uNsTimeout);
     866
     867    LogFlow(("pdmR0DevHlp_SUPSemEventMultiWaitNsAbsIntr: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     868    return rc;
     869}
     870
     871
     872/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventMultiWaitNsRelIntr} */
     873static DECLCALLBACK(int) pdmR0DevHlp_SUPSemEventMultiWaitNsRelIntr(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti,
     874                                                                   uint64_t cNsTimeout)
     875{
     876    PDMDEV_ASSERT_DEVINS(pDevIns);
     877    LogFlow(("pdmR0DevHlp_SUPSemEventMultiWaitNsRelIntr: caller='%s'/%d: hEventMulti=%p cNsTimeout=%RU64\n",
     878             pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti, cNsTimeout));
     879    PGVM pGVM = pDevIns->Internal.s.pGVM;
     880    VM_ASSERT_EMT(pGVM);
     881
     882    int rc = SUPSemEventMultiWaitNsRelIntr(pGVM->pSession, hEventMulti, cNsTimeout);
     883
     884    LogFlow(("pdmR0DevHlp_SUPSemEventMultiWaitNsRelIntr: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     885    return rc;
     886}
     887
     888
     889/** @interface_method_impl{PDMDEVHLPR0,pfnSUPSemEventMultiGetResolution} */
     890static DECLCALLBACK(uint32_t) pdmR0DevHlp_SUPSemEventMultiGetResolution(PPDMDEVINS pDevIns)
     891{
     892    PDMDEV_ASSERT_DEVINS(pDevIns);
     893    LogFlow(("pdmR0DevHlp_SUPSemEventMultiGetResolution: caller='%s'/%d:\n", pDevIns->pReg->szName, pDevIns->iInstance));
     894    PGVM pGVM = pDevIns->Internal.s.pGVM;
     895    VM_ASSERT_EMT(pGVM);
     896
     897    uint32_t cNsResolution = SUPSemEventMultiGetResolution(pGVM->pSession);
     898
     899    LogFlow(("pdmR0DevHlp_SUPSemEventMultiGetResolution: caller='%s'/%d: returns %u\n", pDevIns->pReg->szName, pDevIns->iInstance, cNsResolution));
     900    return cNsResolution;
    674901}
    675902
     
    9091136    pdmR0DevHlp_TMTimeVirtGetFreq,
    9101137    pdmR0DevHlp_TMTimeVirtGetNano,
     1138    pdmR0DevHlp_QueueToPtr,
     1139    pdmR0DevHlp_QueueAlloc,
     1140    pdmR0DevHlp_QueueInsert,
     1141    pdmR0DevHlp_QueueInsertEx,
     1142    pdmR0DevHlp_QueueFlushIfNecessary,
     1143    pdmR0DevHlp_TaskTrigger,
     1144    pdmR0DevHlp_SUPSemEventSignal,
     1145    pdmR0DevHlp_SUPSemEventWaitNoResume,
     1146    pdmR0DevHlp_SUPSemEventWaitNsAbsIntr,
     1147    pdmR0DevHlp_SUPSemEventWaitNsRelIntr,
     1148    pdmR0DevHlp_SUPSemEventGetResolution,
     1149    pdmR0DevHlp_SUPSemEventMultiSignal,
     1150    pdmR0DevHlp_SUPSemEventMultiReset,
     1151    pdmR0DevHlp_SUPSemEventMultiWaitNoResume,
     1152    pdmR0DevHlp_SUPSemEventMultiWaitNsAbsIntr,
     1153    pdmR0DevHlp_SUPSemEventMultiWaitNsRelIntr,
     1154    pdmR0DevHlp_SUPSemEventMultiGetResolution,
    9111155    pdmR0DevHlp_CritSectGetNop,
    9121156    pdmR0DevHlp_SetDeviceCritSect,
  • trunk/src/VBox/VMM/VMMR3/PDM.cpp

    r80943 r81406  
    422422     */
    423423    if (RT_SUCCESS(rc))
     424        rc = pdmR3TaskInit(pVM);
     425    if (RT_SUCCESS(rc))
    424426        rc = pdmR3LdrInitU(pVM->pUVM);
    425427#ifdef VBOX_WITH_PDM_ASYNC_COMPLETION
     
    793795     */
    794796    pdmR3LdrTermU(pVM->pUVM);
     797
     798    /*
     799     * Stop task threads.
     800     */
     801    pdmR3TaskTerm(pVM);
    795802
    796803    /*
  • trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp

    r81382 r81406  
    24442444
    24452445
     2446/** @interface_method_impl{PDMDEVHLPR3,pfnQueueCreatePtr} */
     2447static DECLCALLBACK(int) pdmR3DevHlp_QueueCreatePtr(PPDMDEVINS pDevIns, size_t cbItem, uint32_t cItems, uint32_t cMilliesInterval,
     2448                                                    PFNPDMQUEUEDEV pfnCallback, bool fRZEnabled, const char *pszName, PPDMQUEUE *ppQueue)
     2449{
     2450    PDMDEV_ASSERT_DEVINS(pDevIns);
     2451    LogFlow(("pdmR3DevHlp_QueueCreatePtr: caller='%s'/%d: cbItem=%#x cItems=%#x cMilliesInterval=%u pfnCallback=%p fRZEnabled=%RTbool pszName=%p:{%s} ppQueue=%p\n",
     2452             pDevIns->pReg->szName, pDevIns->iInstance, cbItem, cItems, cMilliesInterval, pfnCallback, fRZEnabled, pszName, pszName, ppQueue));
     2453
     2454    PVM pVM = pDevIns->Internal.s.pVMR3;
     2455    VM_ASSERT_EMT(pVM);
     2456
     2457    if (pDevIns->iInstance > 0)
     2458    {
     2459        pszName = MMR3HeapAPrintf(pVM, MM_TAG_PDM_DEVICE_DESC, "%s_%u", pszName, pDevIns->iInstance);
     2460        AssertLogRelReturn(pszName, VERR_NO_MEMORY);
     2461    }
     2462
     2463    int rc = PDMR3QueueCreateDevice(pVM, pDevIns, cbItem, cItems, cMilliesInterval, pfnCallback, fRZEnabled, pszName, ppQueue);
     2464
     2465    LogFlow(("pdmR3DevHlp_QueueCreatePtr: caller='%s'/%d: returns %Rrc *ppQueue=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, rc, *ppQueue));
     2466    return rc;
     2467}
     2468
     2469
    24462470/** @interface_method_impl{PDMDEVHLPR3,pfnQueueCreate} */
    24472471static DECLCALLBACK(int) pdmR3DevHlp_QueueCreate(PPDMDEVINS pDevIns, size_t cbItem, uint32_t cItems, uint32_t cMilliesInterval,
    2448                                                  PFNPDMQUEUEDEV pfnCallback, bool fRZEnabled, const char *pszName, PPDMQUEUE *ppQueue)
    2449 {
    2450     PDMDEV_ASSERT_DEVINS(pDevIns);
    2451     LogFlow(("pdmR3DevHlp_QueueCreate: caller='%s'/%d: cbItem=%#x cItems=%#x cMilliesInterval=%u pfnCallback=%p fRZEnabled=%RTbool pszName=%p:{%s} ppQueue=%p\n",
    2452              pDevIns->pReg->szName, pDevIns->iInstance, cbItem, cItems, cMilliesInterval, pfnCallback, fRZEnabled, pszName, pszName, ppQueue));
     2472                                                 PFNPDMQUEUEDEV pfnCallback, bool fRZEnabled, const char *pszName,
     2473                                                 PDMQUEUEHANDLE *phQueue)
     2474{
     2475    PDMDEV_ASSERT_DEVINS(pDevIns);
     2476    LogFlow(("pdmR3DevHlp_QueueCreate: caller='%s'/%d: cbItem=%#x cItems=%#x cMilliesInterval=%u pfnCallback=%p fRZEnabled=%RTbool pszName=%p:{%s} phQueue=%p\n",
     2477             pDevIns->pReg->szName, pDevIns->iInstance, cbItem, cItems, cMilliesInterval, pfnCallback, fRZEnabled, pszName, pszName, phQueue));
    24532478
    24542479    PVM pVM = pDevIns->Internal.s.pVMR3;
     
    24612486    }
    24622487
    2463     int rc = PDMR3QueueCreateDevice(pVM, pDevIns, cbItem, cItems, cMilliesInterval, pfnCallback, fRZEnabled, pszName, ppQueue);
    2464 
    2465     LogFlow(("pdmR3DevHlp_QueueCreate: caller='%s'/%d: returns %Rrc *ppQueue=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, rc, *ppQueue));
    2466     return rc;
     2488    PPDMQUEUE pQueue = NULL;
     2489    int rc = PDMR3QueueCreateDevice(pVM, pDevIns, cbItem, cItems, cMilliesInterval, pfnCallback, fRZEnabled, pszName, &pQueue);
     2490    *phQueue = (uintptr_t)pQueue;
     2491
     2492    LogFlow(("pdmR3DevHlp_QueueCreate: caller='%s'/%d: returns %Rrc *ppQueue=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, rc, *phQueue));
     2493    return rc;
     2494}
     2495
     2496
     2497/** @interface_method_impl{PDMDEVHLPR3,pfnQueueToPtr} */
     2498static DECLCALLBACK(PPDMQUEUE)  pdmR3DevHlp_QueueToPtr(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue)
     2499{
     2500    PDMDEV_ASSERT_DEVINS(pDevIns);
     2501    RT_NOREF(pDevIns);
     2502    return (PPDMQUEUE)hQueue;
     2503}
     2504
     2505
     2506/** @interface_method_impl{PDMDEVHLPR3,pfnQueueAlloc} */
     2507static DECLCALLBACK(PPDMQUEUEITEMCORE) pdmR3DevHlp_QueueAlloc(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue)
     2508{
     2509    return PDMQueueAlloc(pdmR3DevHlp_QueueToPtr(pDevIns, hQueue));
     2510}
     2511
     2512
     2513/** @interface_method_impl{PDMDEVHLPR3,pfnQueueInsert} */
     2514static DECLCALLBACK(void) pdmR3DevHlp_QueueInsert(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem)
     2515{
     2516    return PDMQueueInsert(pdmR3DevHlp_QueueToPtr(pDevIns, hQueue), pItem);
     2517}
     2518
     2519
     2520/** @interface_method_impl{PDMDEVHLPR3,pfnQueueInsertEx} */
     2521static DECLCALLBACK(void) pdmR3DevHlp_QueueInsertEx(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue, PPDMQUEUEITEMCORE pItem,
     2522                                                    uint64_t cNanoMaxDelay)
     2523{
     2524    return PDMQueueInsertEx(pdmR3DevHlp_QueueToPtr(pDevIns, hQueue), pItem, cNanoMaxDelay);
     2525}
     2526
     2527
     2528/** @interface_method_impl{PDMDEVHLPR3,pfnQueueFlushIfNecessary} */
     2529static DECLCALLBACK(bool) pdmR3DevHlp_QueueFlushIfNecessary(PPDMDEVINS pDevIns, PDMQUEUEHANDLE hQueue)
     2530{
     2531    return PDMQueueFlushIfNecessary(pdmR3DevHlp_QueueToPtr(pDevIns, hQueue));
     2532}
     2533
     2534
     2535/** @interface_method_impl{PDMDEVHLPR3,pfnTaskCreate} */
     2536static DECLCALLBACK(int) pdmR3DevHlp_TaskCreate(PPDMDEVINS pDevIns, uint32_t fFlags, const char *pszName,
     2537                                                PFNPDMTASKDEV pfnCallback, void *pvUser, PDMTASKHANDLE *phTask)
     2538{
     2539    PDMDEV_ASSERT_DEVINS(pDevIns);
     2540    LogFlow(("pdmR3DevHlp_TaskTrigger: caller='%s'/%d: pfnCallback=%p fFlags=%#x pszName=%p:{%s} phTask=%p\n",
     2541             pDevIns->pReg->szName, pDevIns->iInstance, pfnCallback, fFlags, pszName, pszName, phTask));
     2542    PVM pVM = pDevIns->Internal.s.pVMR3;
     2543    VM_ASSERT_EMT(pVM);
     2544
     2545    int rc = PDMR3TaskCreate(pVM, fFlags, pszName, PDMTASKTYPE_DEV, pDevIns, (PFNRT)pfnCallback, pvUser, phTask);
     2546
     2547    LogFlow(("pdmR3DevHlp_TaskTrigger: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2548    return rc;
     2549}
     2550
     2551
     2552/** @interface_method_impl{PDMDEVHLPR3,pfnTaskTrgger} */
     2553static DECLCALLBACK(int) pdmR3DevHlp_TaskTrigger(PPDMDEVINS pDevIns, PDMTASKHANDLE hTask)
     2554{
     2555    PDMDEV_ASSERT_DEVINS(pDevIns);
     2556    LogFlow(("pdmR3DevHlp_TaskTrigger: caller='%s'/%d: hTask=%RU64\n", pDevIns->pReg->szName, pDevIns->iInstance, hTask));
     2557    PVM pVM = pDevIns->Internal.s.pVMR3;
     2558    VM_ASSERT_EMT(pVM);
     2559
     2560    int rc = PDMTaskTrigger(pVM, PDMTASKTYPE_DEV, pDevIns, hTask);
     2561
     2562    LogFlow(("pdmR3DevHlp_TaskTrigger: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2563    return rc;
     2564}
     2565
     2566
     2567/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventCreate} */
     2568static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventCreate(PPDMDEVINS pDevIns, PSUPSEMEVENT phEvent)
     2569{
     2570    PDMDEV_ASSERT_DEVINS(pDevIns);
     2571    LogFlow(("pdmR3DevHlp_SUPSemEventCreate: caller='%s'/%d: phEvent=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, phEvent));
     2572    PVM pVM = pDevIns->Internal.s.pVMR3;
     2573    VM_ASSERT_EMT(pVM);
     2574
     2575    int rc = SUPSemEventCreate(pVM->pSession, phEvent);
     2576
     2577    LogFlow(("pdmR3DevHlp_SUPSemEventCreate: caller='%s'/%d: returns %Rrc *phEvent=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, rc, *phEvent));
     2578    return rc;
     2579}
     2580
     2581
     2582/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventClose} */
     2583static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventClose(PPDMDEVINS pDevIns, SUPSEMEVENT hEvent)
     2584{
     2585    PDMDEV_ASSERT_DEVINS(pDevIns);
     2586    LogFlow(("pdmR3DevHlp_SUPSemEventClose: caller='%s'/%d: hEvent=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, hEvent));
     2587    PVM pVM = pDevIns->Internal.s.pVMR3;
     2588    VM_ASSERT_EMT(pVM);
     2589
     2590    int rc = SUPSemEventClose(pVM->pSession, hEvent);
     2591
     2592    LogFlow(("pdmR3DevHlp_SUPSemEventClose: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2593    return rc;
     2594}
     2595
     2596
     2597/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventSignal} */
     2598static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventSignal(PPDMDEVINS pDevIns, SUPSEMEVENT hEvent)
     2599{
     2600    PDMDEV_ASSERT_DEVINS(pDevIns);
     2601    LogFlow(("pdmR3DevHlp_SUPSemEventSignal: caller='%s'/%d: hEvent=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, hEvent));
     2602    PVM pVM = pDevIns->Internal.s.pVMR3;
     2603    VM_ASSERT_EMT(pVM);
     2604
     2605    int rc = SUPSemEventSignal(pVM->pSession, hEvent);
     2606
     2607    LogFlow(("pdmR3DevHlp_SUPSemEventSignal: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2608    return rc;
     2609}
     2610
     2611
     2612/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventWaitNoResume} */
     2613static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventWaitNoResume(PPDMDEVINS pDevIns, SUPSEMEVENT hEvent, uint32_t cMillies)
     2614{
     2615    PDMDEV_ASSERT_DEVINS(pDevIns);
     2616    LogFlow(("pdmR3DevHlp_SUPSemEventWaitNoResume: caller='%s'/%d: hEvent=%p cNsTimeout=%RU32\n",
     2617             pDevIns->pReg->szName, pDevIns->iInstance, hEvent, cMillies));
     2618    PVM pVM = pDevIns->Internal.s.pVMR3;
     2619    VM_ASSERT_EMT(pVM);
     2620
     2621    int rc = SUPSemEventWaitNoResume(pVM->pSession, hEvent, cMillies);
     2622
     2623    LogFlow(("pdmR3DevHlp_SUPSemEventWaitNoResume: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2624    return rc;
     2625}
     2626
     2627
     2628/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventWaitNsAbsIntr} */
     2629static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventWaitNsAbsIntr(PPDMDEVINS pDevIns, SUPSEMEVENT hEvent, uint64_t uNsTimeout)
     2630{
     2631    PDMDEV_ASSERT_DEVINS(pDevIns);
     2632    LogFlow(("pdmR3DevHlp_SUPSemEventWaitNsAbsIntr: caller='%s'/%d: hEvent=%p uNsTimeout=%RU64\n",
     2633             pDevIns->pReg->szName, pDevIns->iInstance, hEvent, uNsTimeout));
     2634    PVM pVM = pDevIns->Internal.s.pVMR3;
     2635    VM_ASSERT_EMT(pVM);
     2636
     2637    int rc = SUPSemEventWaitNsAbsIntr(pVM->pSession, hEvent, uNsTimeout);
     2638
     2639    LogFlow(("pdmR3DevHlp_SUPSemEventWaitNsAbsIntr: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2640    return rc;
     2641}
     2642
     2643
     2644/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventWaitNsRelIntr} */
     2645static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventWaitNsRelIntr(PPDMDEVINS pDevIns, SUPSEMEVENT hEvent, uint64_t cNsTimeout)
     2646{
     2647    PDMDEV_ASSERT_DEVINS(pDevIns);
     2648    LogFlow(("pdmR3DevHlp_SUPSemEventWaitNsRelIntr: caller='%s'/%d: hEvent=%p cNsTimeout=%RU64\n",
     2649             pDevIns->pReg->szName, pDevIns->iInstance, hEvent, cNsTimeout));
     2650    PVM pVM = pDevIns->Internal.s.pVMR3;
     2651    VM_ASSERT_EMT(pVM);
     2652
     2653    int rc = SUPSemEventWaitNsRelIntr(pVM->pSession, hEvent, cNsTimeout);
     2654
     2655    LogFlow(("pdmR3DevHlp_SUPSemEventWaitNsRelIntr: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2656    return rc;
     2657}
     2658
     2659
     2660/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventGetResolution} */
     2661static DECLCALLBACK(uint32_t) pdmR3DevHlp_SUPSemEventGetResolution(PPDMDEVINS pDevIns)
     2662{
     2663    PDMDEV_ASSERT_DEVINS(pDevIns);
     2664    LogFlow(("pdmR3DevHlp_SUPSemEventGetResolution: caller='%s'/%d:\n", pDevIns->pReg->szName, pDevIns->iInstance));
     2665    PVM pVM = pDevIns->Internal.s.pVMR3;
     2666    VM_ASSERT_EMT(pVM);
     2667
     2668    uint32_t cNsResolution = SUPSemEventGetResolution(pVM->pSession);
     2669
     2670    LogFlow(("pdmR3DevHlp_SUPSemEventGetResolution: caller='%s'/%d: returns %u\n", pDevIns->pReg->szName, pDevIns->iInstance, cNsResolution));
     2671    return cNsResolution;
     2672}
     2673
     2674
     2675/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventMultiCreate} */
     2676static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventMultiCreate(PPDMDEVINS pDevIns, PSUPSEMEVENTMULTI phEventMulti)
     2677{
     2678    PDMDEV_ASSERT_DEVINS(pDevIns);
     2679    LogFlow(("pdmR3DevHlp_SUPSemEventMultiCreate: caller='%s'/%d: phEventMulti=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, phEventMulti));
     2680    PVM pVM = pDevIns->Internal.s.pVMR3;
     2681    VM_ASSERT_EMT(pVM);
     2682
     2683    int rc = SUPSemEventMultiCreate(pVM->pSession, phEventMulti);
     2684
     2685    LogFlow(("pdmR3DevHlp_SUPSemEventMultiCreate: caller='%s'/%d: returns %Rrc *phEventMulti=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, rc, *phEventMulti));
     2686    return rc;
     2687}
     2688
     2689
     2690/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventMultiClose} */
     2691static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventMultiClose(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti)
     2692{
     2693    PDMDEV_ASSERT_DEVINS(pDevIns);
     2694    LogFlow(("pdmR3DevHlp_SUPSemEventMultiClose: caller='%s'/%d: hEventMulti=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti));
     2695    PVM pVM = pDevIns->Internal.s.pVMR3;
     2696    VM_ASSERT_EMT(pVM);
     2697
     2698    int rc = SUPSemEventMultiClose(pVM->pSession, hEventMulti);
     2699
     2700    LogFlow(("pdmR3DevHlp_SUPSemEventMultiClose: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2701    return rc;
     2702}
     2703
     2704
     2705/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventMultiSignal} */
     2706static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventMultiSignal(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti)
     2707{
     2708    PDMDEV_ASSERT_DEVINS(pDevIns);
     2709    LogFlow(("pdmR3DevHlp_SUPSemEventMultiSignal: caller='%s'/%d: hEventMulti=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti));
     2710    PVM pVM = pDevIns->Internal.s.pVMR3;
     2711    VM_ASSERT_EMT(pVM);
     2712
     2713    int rc = SUPSemEventMultiSignal(pVM->pSession, hEventMulti);
     2714
     2715    LogFlow(("pdmR3DevHlp_SUPSemEventMultiSignal: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2716    return rc;
     2717}
     2718
     2719
     2720/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventMultiReset} */
     2721static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventMultiReset(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti)
     2722{
     2723    PDMDEV_ASSERT_DEVINS(pDevIns);
     2724    LogFlow(("pdmR3DevHlp_SUPSemEventMultiReset: caller='%s'/%d: hEventMulti=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti));
     2725    PVM pVM = pDevIns->Internal.s.pVMR3;
     2726    VM_ASSERT_EMT(pVM);
     2727
     2728    int rc = SUPSemEventMultiReset(pVM->pSession, hEventMulti);
     2729
     2730    LogFlow(("pdmR3DevHlp_SUPSemEventMultiReset: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2731    return rc;
     2732}
     2733
     2734
     2735/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventMultiWaitNoResume} */
     2736static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventMultiWaitNoResume(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti,
     2737                                                                  uint32_t cMillies)
     2738{
     2739    PDMDEV_ASSERT_DEVINS(pDevIns);
     2740    LogFlow(("pdmR3DevHlp_SUPSemEventMultiWaitNoResume: caller='%s'/%d: hEventMulti=%p cMillies=%RU32\n",
     2741             pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti, cMillies));
     2742    PVM pVM = pDevIns->Internal.s.pVMR3;
     2743    VM_ASSERT_EMT(pVM);
     2744
     2745    int rc = SUPSemEventMultiWaitNoResume(pVM->pSession, hEventMulti, cMillies);
     2746
     2747    LogFlow(("pdmR3DevHlp_SUPSemEventMultiWaitNoResume: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2748    return rc;
     2749}
     2750
     2751
     2752/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventMultiWaitNsAbsIntr} */
     2753static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventMultiWaitNsAbsIntr(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti,
     2754                                                                   uint64_t uNsTimeout)
     2755{
     2756    PDMDEV_ASSERT_DEVINS(pDevIns);
     2757    LogFlow(("pdmR3DevHlp_SUPSemEventMultiWaitNsAbsIntr: caller='%s'/%d: hEventMulti=%p uNsTimeout=%RU64\n",
     2758             pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti, uNsTimeout));
     2759    PVM pVM = pDevIns->Internal.s.pVMR3;
     2760    VM_ASSERT_EMT(pVM);
     2761
     2762    int rc = SUPSemEventMultiWaitNsAbsIntr(pVM->pSession, hEventMulti, uNsTimeout);
     2763
     2764    LogFlow(("pdmR3DevHlp_SUPSemEventMultiWaitNsAbsIntr: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2765    return rc;
     2766}
     2767
     2768
     2769/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventMultiWaitNsRelIntr} */
     2770static DECLCALLBACK(int) pdmR3DevHlp_SUPSemEventMultiWaitNsRelIntr(PPDMDEVINS pDevIns, SUPSEMEVENTMULTI hEventMulti,
     2771                                                                   uint64_t cNsTimeout)
     2772{
     2773    PDMDEV_ASSERT_DEVINS(pDevIns);
     2774    LogFlow(("pdmR3DevHlp_SUPSemEventMultiWaitNsRelIntr: caller='%s'/%d: hEventMulti=%p cNsTimeout=%RU64\n",
     2775             pDevIns->pReg->szName, pDevIns->iInstance, hEventMulti, cNsTimeout));
     2776    PVM pVM = pDevIns->Internal.s.pVMR3;
     2777    VM_ASSERT_EMT(pVM);
     2778
     2779    int rc = SUPSemEventMultiWaitNsRelIntr(pVM->pSession, hEventMulti, cNsTimeout);
     2780
     2781    LogFlow(("pdmR3DevHlp_SUPSemEventMultiWaitNsRelIntr: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc));
     2782    return rc;
     2783}
     2784
     2785
     2786/** @interface_method_impl{PDMDEVHLPR3,pfnSUPSemEventMultiGetResolution} */
     2787static DECLCALLBACK(uint32_t) pdmR3DevHlp_SUPSemEventMultiGetResolution(PPDMDEVINS pDevIns)
     2788{
     2789    PDMDEV_ASSERT_DEVINS(pDevIns);
     2790    LogFlow(("pdmR3DevHlp_SUPSemEventMultiGetResolution: caller='%s'/%d:\n", pDevIns->pReg->szName, pDevIns->iInstance));
     2791    PVM pVM = pDevIns->Internal.s.pVMR3;
     2792    VM_ASSERT_EMT(pVM);
     2793
     2794    uint32_t cNsResolution = SUPSemEventMultiGetResolution(pVM->pSession);
     2795
     2796    LogFlow(("pdmR3DevHlp_SUPSemEventMultiGetResolution: caller='%s'/%d: returns %u\n", pDevIns->pReg->szName, pDevIns->iInstance, cNsResolution));
     2797    return cNsResolution;
    24672798}
    24682799
     
    43574688    pdmR3DevHlp_DriverAttach,
    43584689    pdmR3DevHlp_DriverDetach,
     4690    pdmR3DevHlp_QueueCreatePtr,
    43594691    pdmR3DevHlp_QueueCreate,
     4692    pdmR3DevHlp_QueueToPtr,
     4693    pdmR3DevHlp_QueueAlloc,
     4694    pdmR3DevHlp_QueueInsert,
     4695    pdmR3DevHlp_QueueInsertEx,
     4696    pdmR3DevHlp_QueueFlushIfNecessary,
     4697    pdmR3DevHlp_TaskCreate,
     4698    pdmR3DevHlp_TaskTrigger,
     4699    pdmR3DevHlp_SUPSemEventCreate,
     4700    pdmR3DevHlp_SUPSemEventClose,
     4701    pdmR3DevHlp_SUPSemEventSignal,
     4702    pdmR3DevHlp_SUPSemEventWaitNoResume,
     4703    pdmR3DevHlp_SUPSemEventWaitNsAbsIntr,
     4704    pdmR3DevHlp_SUPSemEventWaitNsRelIntr,
     4705    pdmR3DevHlp_SUPSemEventGetResolution,
     4706    pdmR3DevHlp_SUPSemEventMultiCreate,
     4707    pdmR3DevHlp_SUPSemEventMultiClose,
     4708    pdmR3DevHlp_SUPSemEventMultiSignal,
     4709    pdmR3DevHlp_SUPSemEventMultiReset,
     4710    pdmR3DevHlp_SUPSemEventMultiWaitNoResume,
     4711    pdmR3DevHlp_SUPSemEventMultiWaitNsAbsIntr,
     4712    pdmR3DevHlp_SUPSemEventMultiWaitNsRelIntr,
     4713    pdmR3DevHlp_SUPSemEventMultiGetResolution,
    43604714    pdmR3DevHlp_CritSectInit,
    43614715    pdmR3DevHlp_CritSectGetNop,
     
    47995153    pdmR3DevHlp_DriverAttach,
    48005154    pdmR3DevHlp_DriverDetach,
     5155    pdmR3DevHlp_QueueCreatePtr,
    48015156    pdmR3DevHlp_QueueCreate,
     5157    pdmR3DevHlp_QueueToPtr,
     5158    pdmR3DevHlp_QueueAlloc,
     5159    pdmR3DevHlp_QueueInsert,
     5160    pdmR3DevHlp_QueueInsertEx,
     5161    pdmR3DevHlp_QueueFlushIfNecessary,
     5162    pdmR3DevHlp_TaskCreate,
     5163    pdmR3DevHlp_TaskTrigger,
     5164    pdmR3DevHlp_SUPSemEventCreate,
     5165    pdmR3DevHlp_SUPSemEventClose,
     5166    pdmR3DevHlp_SUPSemEventSignal,
     5167    pdmR3DevHlp_SUPSemEventWaitNoResume,
     5168    pdmR3DevHlp_SUPSemEventWaitNsAbsIntr,
     5169    pdmR3DevHlp_SUPSemEventWaitNsRelIntr,
     5170    pdmR3DevHlp_SUPSemEventGetResolution,
     5171    pdmR3DevHlp_SUPSemEventMultiCreate,
     5172    pdmR3DevHlp_SUPSemEventMultiClose,
     5173    pdmR3DevHlp_SUPSemEventMultiSignal,
     5174    pdmR3DevHlp_SUPSemEventMultiReset,
     5175    pdmR3DevHlp_SUPSemEventMultiWaitNoResume,
     5176    pdmR3DevHlp_SUPSemEventMultiWaitNsAbsIntr,
     5177    pdmR3DevHlp_SUPSemEventMultiWaitNsRelIntr,
     5178    pdmR3DevHlp_SUPSemEventMultiGetResolution,
    48025179    pdmR3DevHlp_CritSectInit,
    48035180    pdmR3DevHlp_CritSectGetNop,
  • trunk/src/VBox/VMM/VMMR3/PDMR3Task.cpp

    r81391 r81406  
    285285
    286286/**
    287  * Worker for PDMR3TaskCreateGeneric().
     287 * Worker for PDMR3TaskCreate().
    288288 */
    289289DECLINLINE(PPDMTASK) pdmR3TaskAllocInSet(PPDMTASKSET pTaskSet)
     
    313313 * @thread  EMT(0)
    314314 */
    315 VMMR3_INT_DECL(int) PDMR3TaskCreateGeneric(PVM pVM, uint32_t fFlags, const char *pszName, PDMTASKTYPE enmType, void *pvOwner,
    316                                            PFNRT pfnCallback, void *pvUser, PDMTASKHANDLE *phTask)
     315VMMR3_INT_DECL(int) PDMR3TaskCreate(PVM pVM, uint32_t fFlags, const char *pszName, PDMTASKTYPE enmType, void *pvOwner,
     316                                    PFNRT pfnCallback, void *pvUser, PDMTASKHANDLE *phTask)
    317317{
    318318    /*
     
    371371                 * Try allocate a new set.
    372372                 */
    373                 LogFlow(("PDMR3TaskCreateGeneric: Allocating new task set (%#u)...\n", i));
     373                LogFlow(("PDMR3TaskCreate: Allocating new task set (%#u)...\n", i));
    374374                pTaskSet = (PPDMTASKSET)MMR3HeapAllocZ(pVM, MM_TAG_PDM, sizeof(*pTaskSet));
    375375                AssertReturn(pTaskSet, VERR_NO_MEMORY);
     
    424424                    "Number of times the task was re-triggered.", "/PDM/Tasks/%03u-%s-retriggered", hTask, pszName);
    425425
    426     LogFlow(("PDMR3TaskCreateGeneric: Allocated %u for %s\n", hTask, pszName));
     426    LogFlow(("PDMR3TaskCreate: Allocated %u for %s\n", hTask, pszName));
    427427    return VINF_SUCCESS;
    428428}
     
    444444                                            PFNPDMTASKINT pfnCallback, void *pvUser, PDMTASKHANDLE *phTask)
    445445{
    446     return PDMR3TaskCreateGeneric(pVM, fFlags, pszName, PDMTASKTYPE_INTERNAL, pVM, (PFNRT)pfnCallback, pvUser, phTask);
     446    return PDMR3TaskCreate(pVM, fFlags, pszName, PDMTASKTYPE_INTERNAL, pVM, (PFNRT)pfnCallback, pvUser, phTask);
    447447}
    448448
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