Changeset 81406 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- Oct 21, 2019 12:30:54 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 134120
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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,
Note:
See TracChangeset
for help on using the changeset viewer.