Changeset 32989 in vbox for trunk/src/VBox/Additions
- Timestamp:
- Oct 7, 2010 3:47:31 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 66499
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Miniport
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp
r32915 r32989 2025 2025 VBoxSetupDisplaysHGSMI((PDEVICE_EXTENSION)HwDeviceExtension, ConfigInfo, AdapterMemorySize); 2026 2026 2027 if ( hgsmiFromDeviceExt((PDEVICE_EXTENSION)HwDeviceExtension)->bHGSMI)2027 if (commonFromDeviceExt((PDEVICE_EXTENSION)HwDeviceExtension)->bHGSMI) 2028 2028 { 2029 2029 LogRel(("VBoxVideo: using HGSMI\n")); … … 2082 2082 } 2083 2083 /* clear the IRQ */ 2084 HGSMIClearIrq ( hgsmiFromDeviceExt(PrimaryExtension));2084 HGSMIClearIrq (commonFromDeviceExt(PrimaryExtension)); 2085 2085 return TRUE; 2086 2086 } … … 2676 2676 } 2677 2677 2678 if (! hgsmiFromDeviceExt(pDevExt)->bHGSMI)2678 if (!commonFromDeviceExt(pDevExt)->bHGSMI) 2679 2679 { 2680 2680 RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION; … … 2693 2693 pInfo->u32MinVBVABufferSize = VBVA_MIN_BUFFER_SIZE; 2694 2694 2695 pInfo->IOPortGuestCommand = hgsmiFromDeviceExt(pDevExt)->IOPortGuest;2695 pInfo->IOPortGuestCommand = commonFromDeviceExt(pDevExt)->IOPortGuest; 2696 2696 2697 2697 RequestPacket->StatusBlock->Information = sizeof(QUERYHGSMIRESULT); … … 2712 2712 } 2713 2713 2714 if (! hgsmiFromDeviceExt(pDevExt)->bHGSMI)2714 if (!commonFromDeviceExt(pDevExt)->bHGSMI) 2715 2715 { 2716 2716 RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION; … … 2740 2740 } 2741 2741 2742 if (! hgsmiFromDeviceExt(pDevExt)->bHGSMI)2742 if (!commonFromDeviceExt(pDevExt)->bHGSMI) 2743 2743 { 2744 2744 RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION; … … 2766 2766 } 2767 2767 2768 if (! hgsmiFromDeviceExt(pDevExt)->bHGSMI)2768 if (!commonFromDeviceExt(pDevExt)->bHGSMI) 2769 2769 { 2770 2770 RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION; … … 2787 2787 { 2788 2788 /* TODO: implement */ 2789 if (! hgsmiFromDeviceExt(pDevExt)->bHGSMI)2789 if (!commonFromDeviceExt(pDevExt)->bHGSMI) 2790 2790 { 2791 2791 RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION; … … 2805 2805 } 2806 2806 2807 if (! hgsmiFromDeviceExt(pDevExt)->bHGSMI)2807 if (!commonFromDeviceExt(pDevExt)->bHGSMI) 2808 2808 { 2809 2809 RequestPacket->StatusBlock->Status = ERROR_INVALID_FUNCTION; -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.h
r32915 r32989 201 201 202 202 #ifdef VBOX_WITH_HGSMI 203 typedef struct HGSMI_GUEST_INFO203 typedef struct VBOXVIDEO_COMMON 204 204 { 205 205 BOOLEAN bHGSMI; /* Whether HGSMI is enabled. */ … … 216 216 /* The IO Port Number for guest commands. */ 217 217 RTIOPORT IOPortGuest; 218 } HGSMI_GUEST_INFO, *PHGSMI_GUEST_INFO;218 } VBOXVIDEO_COMMON, *PVBOXVIDEO_COMMON; 219 219 #endif 220 220 … … 290 290 291 291 #ifdef VBOX_WITH_HGSMI 292 HGSMI_GUEST_INFOhgsmiInfo;292 VBOXVIDEO_COMMON hgsmiInfo; 293 293 # ifndef VBOX_WITH_WDDM 294 294 /* Video Port API dynamically picked up at runtime for binary backwards compatibility with older NT versions */ … … 344 344 } DEVICE_EXTENSION, *PDEVICE_EXTENSION; 345 345 346 static inline P HGSMI_GUEST_INFO hgsmiFromDeviceExt(PDEVICE_EXTENSION pExt)346 static inline PVBOXVIDEO_COMMON commonFromDeviceExt(PDEVICE_EXTENSION pExt) 347 347 { 348 348 #ifndef VBOX_WITH_WDDM … … 798 798 #endif 799 799 800 void* vboxHGSMIBufferAlloc(P DEVICE_EXTENSION PrimaryExtension,800 void* vboxHGSMIBufferAlloc(PVBOXVIDEO_COMMON pCommon, 801 801 HGSMISIZE cbData, 802 802 uint8_t u8Ch, 803 803 uint16_t u16Op); 804 void vboxHGSMIBufferFree (P DEVICE_EXTENSION PrimaryExtension, void *pvBuffer);805 int vboxHGSMIBufferSubmit (P DEVICE_EXTENSION PrimaryExtension, void *pvBuffer);804 void vboxHGSMIBufferFree (PVBOXVIDEO_COMMON pCommon, void *pvBuffer); 805 int vboxHGSMIBufferSubmit (PVBOXVIDEO_COMMON pCommon, void *pvBuffer); 806 806 807 807 BOOLEAN FASTCALL VBoxVideoSetCurrentModePerform(PDEVICE_EXTENSION DeviceExtension, … … 868 868 * Host and Guest port IO helpers. 869 869 */ 870 DECLINLINE(void) VBoxHGSMIHostWrite(P HGSMI_GUEST_INFO pInfo, ULONG data)871 { 872 VBoxVideoCmnPortWriteUlong((PULONG)p Info->IOPortHost, data);873 } 874 875 DECLINLINE(ULONG) VBoxHGSMIHostRead(P HGSMI_GUEST_INFO pInfo)876 { 877 return VBoxVideoCmnPortReadUlong((PULONG)p Info->IOPortHost);878 } 879 880 DECLINLINE(void) VBoxHGSMIGuestWrite(P HGSMI_GUEST_INFO pInfo, ULONG data)881 { 882 VBoxVideoCmnPortWriteUlong((PULONG)p Info->IOPortGuest, data);883 } 884 885 DECLINLINE(ULONG) VBoxHGSMIGuestRead(P HGSMI_GUEST_INFO pInfo)886 { 887 return VBoxVideoCmnPortReadUlong((PULONG)p Info->IOPortGuest);870 DECLINLINE(void) VBoxHGSMIHostWrite(PVBOXVIDEO_COMMON pCommon, ULONG data) 871 { 872 VBoxVideoCmnPortWriteUlong((PULONG)pCommon->IOPortHost, data); 873 } 874 875 DECLINLINE(ULONG) VBoxHGSMIHostRead(PVBOXVIDEO_COMMON pCommon) 876 { 877 return VBoxVideoCmnPortReadUlong((PULONG)pCommon->IOPortHost); 878 } 879 880 DECLINLINE(void) VBoxHGSMIGuestWrite(PVBOXVIDEO_COMMON pCommon, ULONG data) 881 { 882 VBoxVideoCmnPortWriteUlong((PULONG)pCommon->IOPortGuest, data); 883 } 884 885 DECLINLINE(ULONG) VBoxHGSMIGuestRead(PVBOXVIDEO_COMMON pCommon) 886 { 887 return VBoxVideoCmnPortReadUlong((PULONG)pCommon->IOPortGuest); 888 888 } 889 889 … … 916 916 ); 917 917 918 void HGSMIClearIrq (P HGSMI_GUEST_INFO pInfo);918 void HGSMIClearIrq (PVBOXVIDEO_COMMON pCommon); 919 919 920 920 #endif /* VBOX_WITH_HGSMI */ -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideoHGSMI.cpp
r32915 r32989 33 33 #define MEM_TAG 'HVBV' 34 34 35 void HGSMINotifyHostCmdComplete (P HGSMI_GUEST_INFO pInfo, HGSMIOFFSET offt)36 { 37 VBoxHGSMIHostWrite(p Info, offt);38 } 39 40 void HGSMIClearIrq (P HGSMI_GUEST_INFO pInfo)41 { 42 VBoxHGSMIHostWrite(p Info, HGSMIOFFSET_VOID);43 } 44 45 static void HGSMIHostCmdComplete (P HGSMI_GUEST_INFO pInfo, void * pvMem)46 { 47 HGSMIOFFSET offMem = HGSMIPointerToOffset (&p Info->areaHostHeap, HGSMIBufferHeaderFromData (pvMem));35 void HGSMINotifyHostCmdComplete (PVBOXVIDEO_COMMON pCommon, HGSMIOFFSET offt) 36 { 37 VBoxHGSMIHostWrite(pCommon, offt); 38 } 39 40 void HGSMIClearIrq (PVBOXVIDEO_COMMON pCommon) 41 { 42 VBoxHGSMIHostWrite(pCommon, HGSMIOFFSET_VOID); 43 } 44 45 static void HGSMIHostCmdComplete (PVBOXVIDEO_COMMON pCommon, void * pvMem) 46 { 47 HGSMIOFFSET offMem = HGSMIPointerToOffset (&pCommon->areaHostHeap, HGSMIBufferHeaderFromData (pvMem)); 48 48 Assert(offMem != HGSMIOFFSET_VOID); 49 49 if(offMem != HGSMIOFFSET_VOID) 50 50 { 51 HGSMINotifyHostCmdComplete (p Info, offMem);52 } 53 } 54 55 static void hgsmiHostCmdProcess(P DEVICE_EXTENSION PrimaryExtension, HGSMIOFFSET offBuffer)56 { 57 int rc = HGSMIBufferProcess (& hgsmiFromDeviceExt(PrimaryExtension)->areaHostHeap,58 & hgsmiFromDeviceExt(PrimaryExtension)->channels,51 HGSMINotifyHostCmdComplete (pCommon, offMem); 52 } 53 } 54 55 static void hgsmiHostCmdProcess(PVBOXVIDEO_COMMON pCommon, HGSMIOFFSET offBuffer) 56 { 57 int rc = HGSMIBufferProcess (&pCommon->areaHostHeap, 58 &pCommon->channels, 59 59 offBuffer); 60 60 Assert(!RT_FAILURE(rc)); … … 63 63 /* failure means the command was not submitted to the handler for some reason 64 64 * it's our responsibility to notify its completion in this case */ 65 HGSMINotifyHostCmdComplete( hgsmiFromDeviceExt(PrimaryExtension), offBuffer);65 HGSMINotifyHostCmdComplete(pCommon, offBuffer); 66 66 } 67 67 /* if the cmd succeeded it's responsibility of the callback to complete it */ 68 68 } 69 69 70 static HGSMIOFFSET hgsmiGetHostBuffer (P DEVICE_EXTENSION PrimaryExtension)71 { 72 return VBoxHGSMIHostRead( hgsmiFromDeviceExt(PrimaryExtension));73 } 74 75 static void hgsmiHostCommandQueryProcess (P DEVICE_EXTENSION PrimaryExtension)76 { 77 HGSMIOFFSET offset = hgsmiGetHostBuffer ( PrimaryExtension);70 static HGSMIOFFSET hgsmiGetHostBuffer (PVBOXVIDEO_COMMON pCommon) 71 { 72 return VBoxHGSMIHostRead(pCommon); 73 } 74 75 static void hgsmiHostCommandQueryProcess (PVBOXVIDEO_COMMON pCommon) 76 { 77 HGSMIOFFSET offset = hgsmiGetHostBuffer (pCommon); 78 78 Assert(offset != HGSMIOFFSET_VOID); 79 79 if(offset != HGSMIOFFSET_VOID) 80 80 { 81 hgsmiHostCmdProcess( PrimaryExtension, offset);81 hgsmiHostCmdProcess(pCommon, offset); 82 82 } 83 83 } … … 159 159 bProcessing = true; 160 160 161 hgsmiHostCommandQueryProcess ( PrimaryExtension);161 hgsmiHostCommandQueryProcess (commonFromDeviceExt(PrimaryExtension)); 162 162 } while(true/*!PrimaryExtension->u.primary.bPollingStop*/); 163 163 } … … 182 182 typedef FNHGSMICALLFINALIZE *PFNHGSMICALLFINALIZE; 183 183 184 void* vboxHGSMIBufferAlloc(P DEVICE_EXTENSION PrimaryExtension,184 void* vboxHGSMIBufferAlloc(PVBOXVIDEO_COMMON pCommon, 185 185 HGSMISIZE cbData, 186 186 uint8_t u8Ch, … … 190 190 /* @todo: add synchronization */ 191 191 #endif 192 return HGSMIHeapAlloc (& hgsmiFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap, cbData, u8Ch, u16Op);193 } 194 195 void vboxHGSMIBufferFree (P DEVICE_EXTENSION PrimaryExtension, void *pvBuffer)192 return HGSMIHeapAlloc (&pCommon->hgsmiAdapterHeap, cbData, u8Ch, u16Op); 193 } 194 195 void vboxHGSMIBufferFree (PVBOXVIDEO_COMMON pCommon, void *pvBuffer) 196 196 { 197 197 #ifdef VBOX_WITH_WDDM 198 198 /* @todo: add synchronization */ 199 199 #endif 200 HGSMIHeapFree (& hgsmiFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap, pvBuffer);201 } 202 203 int vboxHGSMIBufferSubmit (P DEVICE_EXTENSION PrimaryExtension, void *pvBuffer)200 HGSMIHeapFree (&pCommon->hgsmiAdapterHeap, pvBuffer); 201 } 202 203 int vboxHGSMIBufferSubmit (PVBOXVIDEO_COMMON pCommon, void *pvBuffer) 204 204 { 205 205 /* Initialize the buffer and get the offset for port IO. */ 206 HGSMIOFFSET offBuffer = HGSMIHeapBufferOffset (& hgsmiFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap, pvBuffer);206 HGSMIOFFSET offBuffer = HGSMIHeapBufferOffset (&pCommon->hgsmiAdapterHeap, pvBuffer); 207 207 208 208 Assert(offBuffer != HGSMIOFFSET_VOID); … … 210 210 { 211 211 /* Submit the buffer to the host. */ 212 VBoxHGSMIGuestWrite( hgsmiFromDeviceExt(PrimaryExtension), offBuffer);212 VBoxHGSMIGuestWrite(pCommon, offBuffer); 213 213 return VINF_SUCCESS; 214 214 } … … 236 236 #endif 237 237 238 void *p = HGSMIHeapAlloc (& hgsmiFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap, cbData, u8Ch, u16Op);238 void *p = HGSMIHeapAlloc (&commonFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap, cbData, u8Ch, u16Op); 239 239 240 240 if (!p) … … 253 253 { 254 254 /* Initialize the buffer and get the offset for port IO. */ 255 HGSMIOFFSET offBuffer = HGSMIHeapBufferOffset (& hgsmiFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap,255 HGSMIOFFSET offBuffer = HGSMIHeapBufferOffset (&commonFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap, 256 256 p); 257 257 258 258 /* Submit the buffer to the host. */ 259 VBoxHGSMIGuestWrite( hgsmiFromDeviceExt(PrimaryExtension), offBuffer);259 VBoxHGSMIGuestWrite(commonFromDeviceExt(PrimaryExtension), offBuffer); 260 260 261 261 if (pfnFinalize) … … 271 271 272 272 /* Free the IO buffer. */ 273 HGSMIHeapFree (& hgsmiFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap, p);273 HGSMIHeapFree (&commonFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap, p); 274 274 } 275 275 … … 743 743 PrimaryExtension->u.primary.pHostFlags = NULL; 744 744 PrimaryExtension->u.primary.ulMaxFrameBufferSize = 0; 745 hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI = VBoxHGSMIIsSupported (PrimaryExtension);746 VBoxVideoCmnMemZero(& hgsmiFromDeviceExt(PrimaryExtension)->areaHostHeap, sizeof(HGSMIAREA));745 commonFromDeviceExt(PrimaryExtension)->bHGSMI = VBoxHGSMIIsSupported (PrimaryExtension); 746 VBoxVideoCmnMemZero(&commonFromDeviceExt(PrimaryExtension)->areaHostHeap, sizeof(HGSMIAREA)); 747 747 VBoxVideoCmnMemZero(&PrimaryExtension->areaDisplay, sizeof(HGSMIAREA)); 748 748 749 if ( hgsmiFromDeviceExt(PrimaryExtension)->IOPortGuest == 0)750 { 751 hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI = false;752 } 753 754 if ( hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI)749 if (commonFromDeviceExt(PrimaryExtension)->IOPortGuest == 0) 750 { 751 commonFromDeviceExt(PrimaryExtension)->bHGSMI = false; 752 } 753 754 if (commonFromDeviceExt(PrimaryExtension)->bHGSMI) 755 755 { 756 756 /* Map the adapter information. It will be needed for HGSMI IO. */ … … 765 765 rc)); 766 766 767 hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE;767 commonFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE; 768 768 } 769 769 else 770 770 { 771 771 /* Setup a HGSMI heap within the adapter information area. */ 772 rc = HGSMIHeapSetup (& hgsmiFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap,772 rc = HGSMIHeapSetup (&commonFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap, 773 773 PrimaryExtension->u.primary.pvAdapterInformation, 774 774 VBVA_ADAPTER_INFORMATION_SIZE - sizeof(HGSMIHOSTFLAGS), … … 781 781 rc)); 782 782 783 hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE;783 commonFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE; 784 784 } 785 785 else … … 792 792 793 793 /* Setup the host heap and the adapter memory. */ 794 if ( hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI)794 if (commonFromDeviceExt(PrimaryExtension)->bHGSMI) 795 795 { 796 796 /* The miniport heap is used for the host buffers. */ … … 836 836 PrimaryExtension->u.primary.pvMiniportHeap = NULL; 837 837 PrimaryExtension->u.primary.cbMiniportHeap = 0; 838 hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE;838 commonFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE; 839 839 } 840 840 else … … 845 845 846 846 /* Init the host hap area. Buffers from the host will be placed there. */ 847 HGSMIAreaInitialize (& hgsmiFromDeviceExt(PrimaryExtension)->areaHostHeap,847 HGSMIAreaInitialize (&commonFromDeviceExt(PrimaryExtension)->areaHostHeap, 848 848 PrimaryExtension->u.primary.pvMiniportHeap, 849 849 PrimaryExtension->u.primary.cbMiniportHeap, … … 860 860 861 861 /* Check whether the guest supports multimonitors. */ 862 if ( hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI)862 if (commonFromDeviceExt(PrimaryExtension)->bHGSMI) 863 863 { 864 864 #ifndef VBOX_WITH_WDDM … … 939 939 #endif 940 940 941 if ( hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI)941 if (commonFromDeviceExt(PrimaryExtension)->bHGSMI) 942 942 { 943 943 /* Setup the information for the host. */ … … 946 946 if (RT_FAILURE (rc)) 947 947 { 948 hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE;948 commonFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE; 949 949 } 950 950 } 951 951 952 952 #ifdef VBOX_WITH_WDDM 953 if ( hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI)953 if (commonFromDeviceExt(PrimaryExtension)->bHGSMI) 954 954 { 955 955 ULONG ulAvailable = PrimaryExtension->u.primary.cbVRAM … … 1040 1040 1041 1041 if (RT_FAILURE(rc)) 1042 hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE;1043 } 1044 #endif 1045 1046 if (! hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI)1042 commonFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE; 1043 } 1044 #endif 1045 1046 if (!commonFromDeviceExt(PrimaryExtension)->bHGSMI) 1047 1047 { 1048 1048 /* Unmap the memory if VBoxVideo is not supported. */ … … 1050 1050 VBoxUnmapAdapterInformation (PrimaryExtension); 1051 1051 1052 HGSMIHeapDestroy (& hgsmiFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap);1053 } 1054 1055 if ( hgsmiFromDeviceExt(PrimaryExtension)->bHGSMI)1052 HGSMIHeapDestroy (&commonFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap); 1053 } 1054 1055 if (commonFromDeviceExt(PrimaryExtension)->bHGSMI) 1056 1056 { 1057 1057 VBoxVideoCmnSpinLockCreate(PrimaryExtension, &PrimaryExtension->u.primary.pSynchLock); … … 1099 1099 */ 1100 1100 { 1101 HGSMIHeapDestroy(& hgsmiFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap);1101 HGSMIHeapDestroy(&commonFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap); 1102 1102 1103 1103 /* Map the adapter information. It will be needed for HGSMI IO. */ … … 1353 1353 { 1354 1354 PDEVICE_EXTENSION PrimaryExtension = ((PDEVICE_EXTENSION)hHGSMI)->pPrimary; 1355 HGSMIHostCmdComplete ( hgsmiFromDeviceExt(PrimaryExtension), pCmd);1355 HGSMIHostCmdComplete (commonFromDeviceExt(PrimaryExtension), pCmd); 1356 1356 } 1357 1357 … … 1369 1369 VBoxVideoHGSMIDpc(PrimaryExtension, NULL); 1370 1370 1371 HGSMICHANNEL * pChannel = HGSMIChannelFindById (& hgsmiFromDeviceExt(PrimaryExtension)->channels, u8Channel);1371 HGSMICHANNEL * pChannel = HGSMIChannelFindById (&commonFromDeviceExt(PrimaryExtension)->channels, u8Channel); 1372 1372 if(pChannel) 1373 1373 { … … 1467 1467 VBVAHOSTCMD * pNext = pCur->u.pNext; 1468 1468 pCur->u.pNext = NULL; 1469 HGSMIHostCmdComplete( hgsmiFromDeviceExt(pCallbacks->PrimaryExtension), pCur);1469 HGSMIHostCmdComplete(commonFromDeviceExt(pCallbacks->PrimaryExtension), pCur); 1470 1470 pCur = pNext; 1471 1471 Assert(!pCur); … … 1536 1536 } 1537 1537 /* no handlers were found, need to complete the command here */ 1538 HGSMIHostCmdComplete( hgsmiFromDeviceExt(pCallbacks->PrimaryExtension), pvBuffer);1538 HGSMIHostCmdComplete(commonFromDeviceExt(pCallbacks->PrimaryExtension), pvBuffer); 1539 1539 return VINF_SUCCESS; 1540 1540 } … … 1547 1547 { 1548 1548 VBVA_CHANNELCONTEXTS * pContexts; 1549 HGSMICHANNEL * pChannel = HGSMIChannelFindById (& hgsmiFromDeviceExt(PrimaryExtension)->channels, u8Channel);1549 HGSMICHANNEL * pChannel = HGSMIChannelFindById (&commonFromDeviceExt(PrimaryExtension)->channels, u8Channel); 1550 1550 if(!pChannel) 1551 1551 { … … 1584 1584 if(!pChannel) 1585 1585 { 1586 rc = HGSMIChannelRegister (& hgsmiFromDeviceExt(PrimaryExtension)->channels,1586 rc = HGSMIChannelRegister (&commonFromDeviceExt(PrimaryExtension)->channels, 1587 1587 u8Channel, 1588 1588 "VGA Miniport HGSMI channel", -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVbva.cpp
r31763 r32989 22 22 { 23 23 int rc = VERR_NO_MEMORY; 24 void *p = vboxHGSMIBufferAlloc ( pDevExt,24 void *p = vboxHGSMIBufferAlloc (commonFromDeviceExt(pDevExt), 25 25 sizeof (VBVAENABLE_EX), 26 26 HGSMI_CH_VBVA, … … 43 43 pEnable->i32Result = VERR_NOT_SUPPORTED; 44 44 45 vboxHGSMIBufferSubmit ( pDevExt, p);45 vboxHGSMIBufferSubmit (commonFromDeviceExt(pDevExt), p); 46 46 47 47 if (bEnable) … … 53 53 rc = VINF_SUCCESS; 54 54 55 vboxHGSMIBufferFree ( pDevExt, p);55 vboxHGSMIBufferFree (commonFromDeviceExt(pDevExt), p); 56 56 } 57 57 return rc; … … 151 151 { 152 152 /* Issue the flush command. */ 153 void *p = vboxHGSMIBufferAlloc ( pDevExt,153 void *p = vboxHGSMIBufferAlloc (commonFromDeviceExt(pDevExt), 154 154 sizeof (VBVAFLUSH), 155 155 HGSMI_CH_VBVA, … … 166 166 pFlush->u32Reserved = 0; 167 167 168 vboxHGSMIBufferSubmit ( pDevExt, p);169 170 vboxHGSMIBufferFree ( pDevExt, p);168 vboxHGSMIBufferSubmit (commonFromDeviceExt(pDevExt), p); 169 170 vboxHGSMIBufferFree (commonFromDeviceExt(pDevExt), p); 171 171 } 172 172 -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVdma.cpp
r32889 r32989 1002 1002 static int vboxWddmVdmaSubmitHgsmi(struct _DEVICE_EXTENSION* pDevExt, PVBOXVDMAINFO pInfo, HGSMIOFFSET offDr) 1003 1003 { 1004 VBoxHGSMIGuestWrite( hgsmiFromDeviceExt(pDevExt), offDr);1004 VBoxHGSMIGuestWrite(commonFromDeviceExt(pDevExt), offDr); 1005 1005 return VINF_SUCCESS; 1006 1006 } … … 1012 1012 int rc = VINF_SUCCESS; 1013 1013 1014 PVBOXVDMA_CTL pCmd = (PVBOXVDMA_CTL)VBoxSHGSMICommandAlloc(& hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap, sizeof (VBOXVDMA_CTL), HGSMI_CH_VBVA, VBVA_VDMA_CTL);1014 PVBOXVDMA_CTL pCmd = (PVBOXVDMA_CTL)VBoxSHGSMICommandAlloc(&commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap, sizeof (VBOXVDMA_CTL), HGSMI_CH_VBVA, VBVA_VDMA_CTL); 1015 1015 if (pCmd) 1016 1016 { … … 1019 1019 pCmd->i32Result = VERR_NOT_SUPPORTED; 1020 1020 1021 const VBOXSHGSMIHEADER* pHdr = VBoxSHGSMICommandPrepSynch(& hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap, pCmd);1021 const VBOXSHGSMIHEADER* pHdr = VBoxSHGSMICommandPrepSynch(&commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap, pCmd); 1022 1022 Assert(pHdr); 1023 1023 if (pHdr) … … 1025 1025 do 1026 1026 { 1027 HGSMIOFFSET offCmd = VBoxSHGSMICommandOffset(& hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap, pHdr);1027 HGSMIOFFSET offCmd = VBoxSHGSMICommandOffset(&commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap, pHdr); 1028 1028 Assert(offCmd != HGSMIOFFSET_VOID); 1029 1029 if (offCmd != HGSMIOFFSET_VOID) … … 1033 1033 if (RT_SUCCESS(rc)) 1034 1034 { 1035 rc = VBoxSHGSMICommandDoneSynch(& hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap, pHdr);1035 rc = VBoxSHGSMICommandDoneSynch(&commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap, pHdr); 1036 1036 AssertRC(rc); 1037 1037 if (RT_SUCCESS(rc)) … … 1046 1046 rc = VERR_INVALID_PARAMETER; 1047 1047 /* fail to submit, cancel it */ 1048 VBoxSHGSMICommandCancelSynch(& hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap, pHdr);1048 VBoxSHGSMICommandCancelSynch(&commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap, pHdr); 1049 1049 } while (0); 1050 1050 } 1051 1051 1052 VBoxSHGSMICommandFree (& hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap, pCmd);1052 VBoxSHGSMICommandFree (&commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap, pCmd); 1053 1053 } 1054 1054 else -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVhwa.cpp
r32823 r32989 45 45 if(!cRefs) 46 46 { 47 vboxHGSMIBufferFree( pDevExt, pCmd);47 vboxHGSMIBufferFree(commonFromDeviceExt(pDevExt), pCmd); 48 48 } 49 49 } … … 61 61 vbvaVhwaCommandRetain(pDevExt, pCmd); 62 62 63 vboxHGSMIBufferSubmit( pDevExt, pCmd);63 vboxHGSMIBufferSubmit(commonFromDeviceExt(pDevExt), pCmd); 64 64 65 65 if(!(pCmd->Flags & VBOXVHWACMD_FLAG_HG_ASYNCH) … … 100 100 VBVA_VHWA_CMD); 101 101 #else 102 VBOXVHWACMD* pHdr = (VBOXVHWACMD*)vboxHGSMIBufferAlloc( pDevExt,102 VBOXVHWACMD* pHdr = (VBOXVHWACMD*)vboxHGSMIBufferAlloc(commonFromDeviceExt(pDevExt), 103 103 cbCmd + VBOXVHWACMD_HEADSIZE(), 104 104 HGSMI_CH_VBVA, -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp
r32930 r32989 107 107 NTSTATUS vboxWddmGhDisplayPostInfoScreenBySDesc (PDEVICE_EXTENSION pDevExt, PVBOXWDDM_SURFACE_DESC pDesc, POINT * pVScreenPos, uint16_t fFlags) 108 108 { 109 void *p = vboxHGSMIBufferAlloc ( pDevExt,109 void *p = vboxHGSMIBufferAlloc (commonFromDeviceExt(pDevExt), 110 110 sizeof (VBVAINFOSCREEN), 111 111 HGSMI_CH_VBVA, … … 126 126 pScreen->u16Flags = fFlags; 127 127 128 vboxHGSMIBufferSubmit ( pDevExt, p);129 130 vboxHGSMIBufferFree ( pDevExt, p);128 vboxHGSMIBufferSubmit (commonFromDeviceExt(pDevExt), p); 129 130 vboxHGSMIBufferFree (commonFromDeviceExt(pDevExt), p); 131 131 } 132 132 … … 150 150 151 151 /* Issue the screen info command. */ 152 void *p = vboxHGSMIBufferAlloc ( pDevExt,152 void *p = vboxHGSMIBufferAlloc (commonFromDeviceExt(pDevExt), 153 153 sizeof (VBVAINFOVIEW), 154 154 HGSMI_CH_VBVA, … … 165 165 pView->u32MaxScreenSize = pView->u32ViewSize; 166 166 167 vboxHGSMIBufferSubmit ( pDevExt, p);168 169 vboxHGSMIBufferFree ( pDevExt, p);167 vboxHGSMIBufferSubmit (commonFromDeviceExt(pDevExt), p); 168 169 vboxHGSMIBufferFree (commonFromDeviceExt(pDevExt), p); 170 170 } 171 171 … … 268 268 return &pDevExt->u.primary.Vdma.CmdHeap; 269 269 #endif 270 if (HGSMIAreaContainsOffset(& hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap.area, offCmd))271 return & hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap;270 if (HGSMIAreaContainsOffset(&commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap.area, offCmd)) 271 return &commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap; 272 272 return NULL; 273 273 } … … 288 288 return VBOXWDDM_HGSMICMD_TYPE_DMACMD; 289 289 #endif 290 if (HGSMIAreaContainsOffset(& hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap.area, offCmd))290 if (HGSMIAreaContainsOffset(&commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap.area, offCmd)) 291 291 return VBOXWDDM_HGSMICMD_TYPE_CTL; 292 292 return VBOXWDDM_HGSMICMD_TYPE_UNDEFINED; … … 421 421 if (VBoxHGSMIIsSupported (pContext)) 422 422 { 423 hgsmiFromDeviceExt(pContext)->IOPortHost = (RTIOPORT)VGA_PORT_HGSMI_HOST;424 hgsmiFromDeviceExt(pContext)->IOPortGuest = (RTIOPORT)VGA_PORT_HGSMI_GUEST;423 commonFromDeviceExt(pContext)->IOPortHost = (RTIOPORT)VGA_PORT_HGSMI_HOST; 424 commonFromDeviceExt(pContext)->IOPortGuest = (RTIOPORT)VGA_PORT_HGSMI_GUEST; 425 425 426 426 PCM_RESOURCE_LIST pRcList = pDeviceInfo->TranslatedResourceList; … … 580 580 */ 581 581 VBoxSetupDisplaysHGSMI(pContext, AdapterMemorySize); 582 if ( hgsmiFromDeviceExt(pContext)->bHGSMI)582 if (commonFromDeviceExt(pContext)->bHGSMI) 583 583 { 584 584 drprintf(("VBoxVideoWddm: using HGSMI\n")); … … 794 794 { 795 795 /* read the command offset */ 796 HGSMIOFFSET offCmd = VBoxHGSMIGuestRead( hgsmiFromDeviceExt(pDevExt));796 HGSMIOFFSET offCmd = VBoxHGSMIGuestRead(commonFromDeviceExt(pDevExt)); 797 797 Assert(offCmd != HGSMIOFFSET_VOID); 798 798 if (offCmd != HGSMIOFFSET_VOID) … … 811 811 case VBOXWDDM_HGSMICMD_TYPE_CTL: 812 812 pList = &CtlList; 813 pHeap = & hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap;813 pHeap = &commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap; 814 814 break; 815 815 default: … … 888 888 if (bOur) 889 889 { 890 HGSMIClearIrq ( hgsmiFromDeviceExt(pDevExt));890 HGSMIClearIrq (commonFromDeviceExt(pDevExt)); 891 891 #ifdef DEBUG_misha 892 892 /* this is not entirely correct since host may concurrently complete some commands and raise a new IRQ while we are here, … … 974 974 if (!vboxSHGSMIListIsEmpty(&context.data.CtlList)) 975 975 { 976 int rc = VBoxSHGSMICommandPostprocessCompletion (& hgsmiFromDeviceExt(pDevExt)->hgsmiAdapterHeap, &context.data.CtlList);976 int rc = VBoxSHGSMICommandPostprocessCompletion (&commonFromDeviceExt(pDevExt)->hgsmiAdapterHeap, &context.data.CtlList); 977 977 AssertRC(rc); 978 978 }
Note:
See TracChangeset
for help on using the changeset viewer.