Changeset 81406 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Oct 21, 2019 12:30:54 PM (5 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/Makefile.kmk
r81333 r81406 138 138 VMMR3/PDMCritSect.cpp \ 139 139 VMMR3/PDMQueue.cpp \ 140 VMMR3/PDMR3Task.cpp \ 140 141 VMMR3/PDMThread.cpp \ 141 142 VMMR3/PGM.cpp \ … … 191 192 VMMAll/PDMAllCritSectBoth.cpp \ 192 193 VMMAll/PDMAllQueue.cpp \ 194 VMMAll/PDMAllTask.cpp \ 193 195 VMMAll/PGMAll.cpp \ 194 196 VMMAll/PGMAllHandler.cpp \ … … 521 523 VMMAll/PDMAllCritSectBoth.cpp \ 522 524 VMMAll/PDMAllQueue.cpp \ 525 VMMAll/PDMAllTask.cpp \ 523 526 VMMAll/PGMAll.cpp \ 524 527 VMMAll/PGMAllHandler.cpp \ -
trunk/src/VBox/VMM/VMMAll/PDMAllTask.cpp
r81391 r81406 23 23 #include "PDMInternal.h" 24 24 #include <VBox/vmm/pdmtask.h> 25 #include <VBox/vmm/ vm.h>25 #include <VBox/vmm/gvm.h> 26 26 #include <VBox/err.h> 27 27 … … 46 46 * @thread Any 47 47 */ 48 VMM_INT_DECL(int) PDMTaskTrigger(PVM pVM, PDMTASKTYPE enmType, void *pvOwner, PDMTASKHANDLE hTask)48 VMM_INT_DECL(int) PDMTaskTrigger(PVMCC pVM, PDMTASKTYPE enmType, RTR3PTR pvOwner, PDMTASKHANDLE hTask) 49 49 { 50 50 /* … … 54 54 AssertReturn(enmType >= PDMTASKTYPE_DEV && enmType <= PDMTASKTYPE_INTERNAL, VERR_NOT_OWNER); 55 55 56 size_t const iTask = hTask % RT_ELEMENTS(pVM->pdm.s.a pTaskSets[0]->aTasks);57 size_t const iTaskSet = hTask / RT_ELEMENTS(pVM->pdm.s.a pTaskSets[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); 58 58 #ifdef IN_RING3 59 59 AssertReturn(iTaskSet < RT_ELEMENTS(pVM->pdm.s.apTaskSets), VERR_INVALID_HANDLE); … … 108 108 * @thread Any 109 109 */ 110 VMM_INT_DECL(int) PDMTaskTriggerInternal(PVM pVM, PDMTASKHANDLE hTask)110 VMM_INT_DECL(int) PDMTaskTriggerInternal(PVMCC pVM, PDMTASKHANDLE hTask) 111 111 { 112 return PDMTaskTrigger(pVM, PDMTASKTYPE_INTERNAL, pVM , hTask);112 return PDMTaskTrigger(pVM, PDMTASKTYPE_INTERNAL, pVM->pVMR3, hTask); 113 113 } 114 114 -
trunk/src/VBox/VMM/VMMR0/PDMR0Device.cpp
r81197 r81406 672 672 LogFlow(("pdmR0DevHlp_TMTimeVirtGetNano: caller='%p'/%d\n", pDevIns, pDevIns->iInstance)); 673 673 return TMVirtualToNano(pDevIns->Internal.s.pGVM, TMVirtualGet(pDevIns->Internal.s.pGVM)); 674 } 675 676 677 /** @interface_method_impl{PDMDEVHLPR0,pfnQueueToPtr} */ 678 static 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} */ 687 static 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} */ 694 static 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} */ 701 static 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} */ 709 static 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} */ 716 static 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} */ 731 static 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} */ 746 static 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} */ 762 static 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} */ 778 static 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} */ 794 static 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} */ 809 static 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} */ 824 static 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} */ 839 static 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} */ 856 static 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} */ 873 static 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} */ 890 static 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; 674 901 } 675 902 … … 909 1136 pdmR0DevHlp_TMTimeVirtGetFreq, 910 1137 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, 911 1155 pdmR0DevHlp_CritSectGetNop, 912 1156 pdmR0DevHlp_SetDeviceCritSect, -
trunk/src/VBox/VMM/VMMR3/PDM.cpp
r80943 r81406 422 422 */ 423 423 if (RT_SUCCESS(rc)) 424 rc = pdmR3TaskInit(pVM); 425 if (RT_SUCCESS(rc)) 424 426 rc = pdmR3LdrInitU(pVM->pUVM); 425 427 #ifdef VBOX_WITH_PDM_ASYNC_COMPLETION … … 793 795 */ 794 796 pdmR3LdrTermU(pVM->pUVM); 797 798 /* 799 * Stop task threads. 800 */ 801 pdmR3TaskTerm(pVM); 795 802 796 803 /* -
trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp
r81382 r81406 2444 2444 2445 2445 2446 /** @interface_method_impl{PDMDEVHLPR3,pfnQueueCreatePtr} */ 2447 static 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 2446 2470 /** @interface_method_impl{PDMDEVHLPR3,pfnQueueCreate} */ 2447 2471 static 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)); 2453 2478 2454 2479 PVM pVM = pDevIns->Internal.s.pVMR3; … … 2461 2486 } 2462 2487 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} */ 2498 static 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} */ 2507 static 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} */ 2514 static 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} */ 2521 static 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} */ 2529 static 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} */ 2536 static 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} */ 2553 static 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} */ 2568 static 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} */ 2583 static 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} */ 2598 static 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} */ 2613 static 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} */ 2629 static 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} */ 2645 static 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} */ 2661 static 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} */ 2676 static 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} */ 2691 static 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} */ 2706 static 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} */ 2721 static 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} */ 2736 static 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} */ 2753 static 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} */ 2770 static 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} */ 2787 static 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; 2467 2798 } 2468 2799 … … 4357 4688 pdmR3DevHlp_DriverAttach, 4358 4689 pdmR3DevHlp_DriverDetach, 4690 pdmR3DevHlp_QueueCreatePtr, 4359 4691 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, 4360 4714 pdmR3DevHlp_CritSectInit, 4361 4715 pdmR3DevHlp_CritSectGetNop, … … 4799 5153 pdmR3DevHlp_DriverAttach, 4800 5154 pdmR3DevHlp_DriverDetach, 5155 pdmR3DevHlp_QueueCreatePtr, 4801 5156 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, 4802 5179 pdmR3DevHlp_CritSectInit, 4803 5180 pdmR3DevHlp_CritSectGetNop, -
trunk/src/VBox/VMM/VMMR3/PDMR3Task.cpp
r81391 r81406 285 285 286 286 /** 287 * Worker for PDMR3TaskCreate Generic().287 * Worker for PDMR3TaskCreate(). 288 288 */ 289 289 DECLINLINE(PPDMTASK) pdmR3TaskAllocInSet(PPDMTASKSET pTaskSet) … … 313 313 * @thread EMT(0) 314 314 */ 315 VMMR3_INT_DECL(int) PDMR3TaskCreate Generic(PVM pVM, uint32_t fFlags, const char *pszName, PDMTASKTYPE enmType, void *pvOwner,316 315 VMMR3_INT_DECL(int) PDMR3TaskCreate(PVM pVM, uint32_t fFlags, const char *pszName, PDMTASKTYPE enmType, void *pvOwner, 316 PFNRT pfnCallback, void *pvUser, PDMTASKHANDLE *phTask) 317 317 { 318 318 /* … … 371 371 * Try allocate a new set. 372 372 */ 373 LogFlow(("PDMR3TaskCreate Generic: Allocating new task set (%#u)...\n", i));373 LogFlow(("PDMR3TaskCreate: Allocating new task set (%#u)...\n", i)); 374 374 pTaskSet = (PPDMTASKSET)MMR3HeapAllocZ(pVM, MM_TAG_PDM, sizeof(*pTaskSet)); 375 375 AssertReturn(pTaskSet, VERR_NO_MEMORY); … … 424 424 "Number of times the task was re-triggered.", "/PDM/Tasks/%03u-%s-retriggered", hTask, pszName); 425 425 426 LogFlow(("PDMR3TaskCreate Generic: Allocated %u for %s\n", hTask, pszName));426 LogFlow(("PDMR3TaskCreate: Allocated %u for %s\n", hTask, pszName)); 427 427 return VINF_SUCCESS; 428 428 } … … 444 444 PFNPDMTASKINT pfnCallback, void *pvUser, PDMTASKHANDLE *phTask) 445 445 { 446 return PDMR3TaskCreate Generic(pVM, fFlags, pszName, PDMTASKTYPE_INTERNAL, pVM, (PFNRT)pfnCallback, pvUser, phTask);446 return PDMR3TaskCreate(pVM, fFlags, pszName, PDMTASKTYPE_INTERNAL, pVM, (PFNRT)pfnCallback, pvUser, phTask); 447 447 } 448 448
Note:
See TracChangeset
for help on using the changeset viewer.