Changeset 41109 in vbox for trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm
- Timestamp:
- May 2, 2012 8:37:46 AM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 77709
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPCr.cpp
r40897 r41109 20 20 #include "VBoxMPCr.h" 21 21 22 #include <VBox/HostServices/VBoxCrOpenGLSvc.h> 23 22 24 #include <cr_protocol.h> 23 25 24 #include <VBox/HostServices/VBoxCrOpenGLSvc.h> 26 #if 0 27 #include <cr_pack.h> 28 29 typedef struct PVBOXMP_SHGSMIPACKER 30 { 31 PVBOXMP_DEVEXT pDevExt; 32 CRPackContext CrPacker; 33 CRPackBuffer CrBuffer; 34 } PVBOXMP_SHGSMIPACKER, *PPVBOXMP_SHGSMIPACKER; 35 36 static void* vboxMpCrShgsmiBufferAlloc(PVBOXMP_DEVEXT pDevExt, HGSMISIZE cbData) 37 { 38 return VBoxSHGSMIHeapBufferAlloc(&VBoxCommonFromDeviceExt(pDevExt)->guestCtx.heapCtx, cbData); 39 } 40 41 static void vboxMpCrShgsmiBufferFree(PVBOXMP_DEVEXT pDevExt, void *pvBuffer) 42 { 43 VBoxSHGSMIHeapBufferFree(&VBoxCommonFromDeviceExt(pDevExt)->guestCtx.heapCtx, pvBuffer); 44 } 45 46 static void vboxMpCrShgsmiPackerCbFlush(void *pvFlush) 47 { 48 PPVBOXMP_SHGSMIPACKER pPacker = (PPVBOXMP_SHGSMIPACKER)pvFlush; 49 50 crPackReleaseBuffer(&pPacker->CrPacker); 51 52 if (pPacker->CrBuffer.opcode_current != pPacker->CrBuffer.opcode_start) 53 { 54 CRMessageOpcodes *pHdr; 55 unsigned int len; 56 pHdr = vboxMpCrPackerPrependHeader(&pPacker->CrBuffer, &len, 0); 57 58 /*Send*/ 59 } 60 61 62 crPackSetBuffer(&pPacker->CrPacker, &pPacker->CrBuffer); 63 crPackResetPointers(&pPacker->CrPacker); 64 } 65 66 static int vboxMpCrShgsmiPackerInit(PPVBOXMP_SHGSMIPACKER pPacker, PVBOXMP_DEVEXT pDevExt) 67 { 68 memset(pPacker, 0, sizeof (*pPacker)); 69 70 static const cbBuffer = 1000; 71 void *pvBuffer = vboxMpCrShgsmiBufferAlloc(pDevExt, cbBuffer); 72 if (!pvBuffer) 73 { 74 WARN(("vboxMpCrShgsmiBufferAlloc failed")); 75 return VERR_NO_MEMORY; 76 } 77 crPackInitBuffer(&pPacker->CrBuffer, pvBuffer, cbBuffer, cbBuffer); 78 crPackSetBuffer(&pPacker->CrPacker, &pPacker->CrBuffer); 79 crPackFlushFunc(&pPacker->CrPacker, vboxMpCrShgsmiPackerCbFlush); 80 crPackFlushArg(&pPacker->CrPacker, pPacker); 81 // crPackSendHugeFunc( thread->packer, packspuHuge ); 82 return VINF_SUCCESS; 83 } 84 #endif 25 85 26 86 static int vboxMpCrCtlAddRef(PVBOXMP_CRCTLCON pCrCtlCon) -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPShgsmi.cpp
r40387 r41109 161 161 KeAcquireSpinLock(&pHeap->HeapLock, &OldIrql); 162 162 HGSMIHeapFree(&pHeap->Heap, pvBuffer); 163 KeReleaseSpinLock(&pHeap->HeapLock, OldIrql); 164 } 165 166 void* VBoxSHGSMIHeapBufferAlloc(PVBOXSHGSMI pHeap, HGSMISIZE cbData) 167 { 168 KIRQL OldIrql; 169 void* pvData; 170 Assert(KeGetCurrentIrql() <= DISPATCH_LEVEL); 171 KeAcquireSpinLock(&pHeap->HeapLock, &OldIrql); 172 pvData = HGSMIHeapBufferAlloc(&pHeap->Heap, cbData); 173 KeReleaseSpinLock(&pHeap->HeapLock, OldIrql); 174 if (!pvData) 175 WARN(("HGSMIHeapAlloc failed!")); 176 return pvData; 177 } 178 179 void VBoxSHGSMIHeapBufferFree(PVBOXSHGSMI pHeap, void *pvBuffer) 180 { 181 KIRQL OldIrql; 182 Assert(KeGetCurrentIrql() <= DISPATCH_LEVEL); 183 KeAcquireSpinLock(&pHeap->HeapLock, &OldIrql); 184 HGSMIHeapBufferFree(&pHeap->Heap, pvBuffer); 163 185 KeReleaseSpinLock(&pHeap->HeapLock, OldIrql); 164 186 } -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPShgsmi.h
r40387 r41109 58 58 void* VBoxSHGSMIHeapAlloc(PVBOXSHGSMI pHeap, HGSMISIZE cbData, uint8_t u8Channel, uint16_t u16ChannelInfo); 59 59 void VBoxSHGSMIHeapFree(PVBOXSHGSMI pHeap, void *pvBuffer); 60 void* VBoxSHGSMIHeapBufferAlloc(PVBOXSHGSMI pHeap, HGSMISIZE cbData); 61 void VBoxSHGSMIHeapBufferFree(PVBOXSHGSMI pHeap, void *pvBuffer); 60 62 void* VBoxSHGSMICommandAlloc(PVBOXSHGSMI pHeap, HGSMISIZE cbData, uint8_t u8Channel, uint16_t u16ChannelInfo); 61 63 void VBoxSHGSMICommandFree(PVBOXSHGSMI pHeap, void *pvBuffer);
Note:
See TracChangeset
for help on using the changeset viewer.