Changeset 65298 in vbox
- Timestamp:
- Jan 14, 2017 8:11:22 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 112868
- Location:
- trunk/src/VBox/Devices/Graphics
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA.cpp
r65297 r65298 2868 2868 Assert(offFifoMin < offFifoMax); 2869 2869 Assert(offCurrentCmd >= offFifoMin && offCurrentCmd < offFifoMax); 2870 Assert(offFifoMax <= VMSVGA_FIFO_SIZE);2870 Assert(offFifoMax <= pThis->svga.cbFIFO); 2871 2871 2872 2872 /* … … 3029 3029 * (All code must return via the end of the function to free this buffer.) 3030 3030 */ 3031 uint8_t *pbBounceBuf = (uint8_t *)RTMemAllocZ( VMSVGA_FIFO_SIZE);3031 uint8_t *pbBounceBuf = (uint8_t *)RTMemAllocZ(pThis->svga.cbFIFO); 3032 3032 AssertReturn(pbBounceBuf, VERR_NO_MEMORY); 3033 3033 … … 3130 3130 if (RT_UNLIKELY( !VMSVGA_IS_VALID_FIFO_REG(SVGA_FIFO_STOP, offFifoMin) 3131 3131 || offFifoMax <= offFifoMin 3132 || offFifoMax > VMSVGA_FIFO_SIZE3132 || offFifoMax > pThis->svga.cbFIFO 3133 3133 || (offFifoMax & 3) != 0 3134 3134 || (offFifoMin & 3) != 0 … … 3339 3339 3340 3340 /* Refetch the command buffer with the variable data; undo size increase (ugly) */ 3341 AssertBreak(pEscape->size < VMSVGA_FIFO_SIZE);3341 AssertBreak(pEscape->size < pThis->svga.cbFIFO); 3342 3342 uint32_t cbCmd = sizeof(SVGAFifoCmdEscape) + pEscape->size; 3343 3343 VMSVGAFIFO_GET_MORE_CMD_BUFFER_BREAK(pEscape, SVGAFifoCmdEscape, cbCmd); … … 3440 3440 else 3441 3441 { 3442 AssertBreak(pCmd->numPages <= VMSVGA_FIFO_SIZE/ cbPageDesc);3442 AssertBreak(pCmd->numPages <= pThis->svga.cbFIFO / cbPageDesc); 3443 3443 cbCmd += cbPageDesc * pCmd->numPages; 3444 3444 } … … 3711 3711 SVGA3dCmdHeader *pHdr; 3712 3712 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pHdr, SVGA3dCmdHeader, sizeof(*pHdr)); 3713 AssertBreak(pHdr->size < VMSVGA_FIFO_SIZE);3713 AssertBreak(pHdr->size < pThis->svga.cbFIFO); 3714 3714 uint32_t cbCmd = sizeof(SVGA3dCmdHeader) + pHdr->size; 3715 3715 VMSVGAFIFO_GET_MORE_CMD_BUFFER_BREAK(pHdr, SVGA3dCmdHeader, cbCmd); … … 4445 4445 if (RT_SUCCESS(rc)) 4446 4446 { 4447 rc = PGMHandlerPhysicalRegister(PDMDevHlpGetVM(pDevIns), GCPhysAddress, GCPhysAddress + ( VMSVGA_FIFO_SIZE- 1),4447 rc = PGMHandlerPhysicalRegister(PDMDevHlpGetVM(pDevIns), GCPhysAddress, GCPhysAddress + (pThis->svga.cbFIFO - 1), 4448 4448 pThis->svga.hFifoAccessHandlerType, pThis, NIL_RTR0PTR, NIL_RTRCPTR, 4449 4449 "VMSVGA FIFO"); -
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA.h
r65296 r65298 26 26 27 27 /** Default FIFO size. */ 28 #define VMSVGA_FIFO_SIZE 0x20000 28 #define VMSVGA_FIFO_SIZE _128K 29 29 30 /** Default scratch region size. */ 30 31 #define VMSVGA_SCRATCH_SIZE 0x100 … … 192 193 /** Physical address of command mmio range. */ 193 194 RTIOPORT BasePort; 195 RTIOPORT Padding3; 194 196 /** Port io index register. */ 195 197 uint32_t u32IndexReg; -
trunk/src/VBox/Devices/Graphics/DevVGA.cpp
r65294 r65298 6091 6091 #ifdef VBOX_WITH_VMSVGA 6092 6092 "VMSVGAEnabled\0" 6093 "VMSVGAFifoSize\0" 6093 6094 #endif 6094 6095 #ifdef VBOX_WITH_VMSVGA3D … … 6130 6131 AssertLogRelRCReturn(rc, rc); 6131 6132 Log(("VMSVGA: VMSVGAEnabled = %d\n", pThis->fVMSVGAEnabled)); 6133 6134 rc = CFGMR3QueryU32Def(pCfg, "VMSVGAFifoSize", &pThis->svga.cbFIFO, VMSVGA_FIFO_SIZE); 6135 AssertLogRelRCReturn(rc, rc); 6136 AssertLogRelMsgReturn(pThis->svga.cbFIFO >= _128K, ("cbFIFO=%#x\n", pThis->svga.cbFIFO), VERR_OUT_OF_RANGE); 6137 AssertLogRelMsgReturn(pThis->svga.cbFIFO <= _16M, ("cbFIFO=%#x\n", pThis->svga.cbFIFO), VERR_OUT_OF_RANGE); 6138 AssertLogRelMsgReturn(RT_IS_POWER_OF_TWO(pThis->svga.cbFIFO), ("cbFIFO=%#x\n", pThis->svga.cbFIFO), VERR_NOT_POWER_OF_TWO); 6139 Log(("VMSVGA: VMSVGAFifoSize = %#x (%'u)\n", pThis->svga.cbFIFO, pThis->svga.cbFIFO)); 6132 6140 #endif 6133 6141 #ifdef VBOX_WITH_VMSVGA3D … … 6247 6255 if (RT_FAILURE(rc)) 6248 6256 return rc; 6249 rc = PDMDevHlpPCIIORegionRegister(pDevIns, 2 /* iRegion */, VMSVGA_FIFO_SIZE,6257 rc = PDMDevHlpPCIIORegionRegister(pDevIns, 2 /* iRegion */, pThis->svga.cbFIFO, 6250 6258 PCI_ADDRESS_SPACE_MEM /* PCI_ADDRESS_SPACE_MEM_PREFETCH */, vmsvgaR3IORegionMap); 6251 6259 if (RT_FAILURE(rc)) … … 6277 6285 * Allocate and initialize the FIFO MMIO2 memory. 6278 6286 */ 6279 rc = PDMDevHlpMMIO2Register(pDevIns, &pThis->Dev, 2 /*iRegion*/, VMSVGA_FIFO_SIZE,6287 rc = PDMDevHlpMMIO2Register(pDevIns, &pThis->Dev, 2 /*iRegion*/, pThis->svga.cbFIFO, 6280 6288 0 /*fFlags*/, (void **)&pThis->svga.pFIFOR3, "VMSVGA-FIFO"); 6281 6289 if (RT_FAILURE(rc)) 6282 6290 return PDMDevHlpVMSetError(pDevIns, rc, RT_SRC_POS, 6283 N_("Failed to allocate %u bytes of memory for the VMSVGA device"), VMSVGA_FIFO_SIZE);6291 N_("Failed to allocate %u bytes of memory for the VMSVGA device"), pThis->svga.cbFIFO); 6284 6292 pThis->svga.pFIFOR0 = (RTR0PTR)pThis->svga.pFIFOR3; 6285 pThis->svga.cbFIFO = VMSVGA_FIFO_SIZE;6286 6293 } 6287 6294 #else … … 6315 6322 { 6316 6323 RTR0PTR pR0Mapping = 0; 6317 rc = PDMDevHlpMMIO2MapKernel(pDevIns, 2 /* iRegion */, 0 /* off */, VMSVGA_FIFO_SIZE, "VMSVGA-FIFO", &pR0Mapping);6318 AssertLogRelMsgRCReturn(rc, ("PDMDevHlpMapMMIO2IntoR0(%#x,) -> %Rrc\n", VMSVGA_FIFO_SIZE, rc), rc);6324 rc = PDMDevHlpMMIO2MapKernel(pDevIns, 2 /* iRegion */, 0 /* off */, pThis->svga.cbFIFO, "VMSVGA-FIFO", &pR0Mapping); 6325 AssertLogRelMsgRCReturn(rc, ("PDMDevHlpMapMMIO2IntoR0(%#x,) -> %Rrc\n", pThis->svga.cbFIFO, rc), rc); 6319 6326 pThis->svga.pFIFOR0 = pR0Mapping; 6320 6327 }
Note:
See TracChangeset
for help on using the changeset viewer.