Changeset 50149 in vbox for trunk/src/VBox/Devices/Graphics
- Timestamp:
- Jan 21, 2014 6:18:36 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 91701
- Location:
- trunk/src/VBox/Devices/Graphics
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA.h
r50126 r50149 593 593 int VBVAUpdateDisplay (PVGASTATE pVGAState); 594 594 void VBVAReset (PVGASTATE pVGAState); 595 int VBVAGetScreenInfo(PVGASTATE pVGAState, unsigned uScreenId, struct VBVAINFOSCREEN *pScreen, void **ppvVram); 595 596 596 597 bool VBVAIsEnabled(PVGASTATE pVGAState); 597 598 598 599 void VBVARaiseIrq (PVGASTATE pVGAState, uint32_t fFlags); 600 void VBVARaiseIrqNoWait(PVGASTATE pVGAState, uint32_t fFlags); 599 601 600 602 /* @return host-guest flags that were set on reset -
trunk/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp
r49507 r50149 1918 1918 #if defined(VBOX_WITH_HGSMI) && (defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_WITH_VDMA) || defined(VBOX_WITH_WDDM)) 1919 1919 PVGASTATE pVGAState = (PVGASTATE)pvCallback; 1920 VBVARaiseIrq (pVGAState, 0);1920 VBVARaiseIrqNoWait (pVGAState, 0); 1921 1921 #else 1922 1922 NOREF(pvCallback); … … 2436 2436 pVGAState->pHGSMI = NULL; 2437 2437 } 2438 2439 int VBVAGetScreenInfo(PVGASTATE pVGAState, unsigned uScreenId, struct VBVAINFOSCREEN *pScreen, void **ppvVram) 2440 { 2441 PPDMDEVINS pDevIns = pVGAState->pDevInsR3; 2442 PHGSMIINSTANCE pIns = pVGAState->pHGSMI; 2443 VBVACONTEXT *pCtx = (VBVACONTEXT *)HGSMIContext (pIns); 2444 int rc = PDMCritSectEnter(&pVGAState->CritSect, VERR_SEM_BUSY); 2445 if (RT_SUCCESS(rc)) 2446 { 2447 if (uScreenId < pCtx->cViews) 2448 { 2449 VBVAVIEW *pView = &pCtx->aViews[uScreenId]; 2450 if (pView->pVBVA) 2451 { 2452 uint8_t *pu8VRAM = pVGAState->vram_ptrR3 + pView->view.u32ViewOffset; 2453 *pScreen = pView->screen; 2454 *ppvVram = (void*)pu8VRAM; 2455 rc = VINF_SUCCESS; 2456 } 2457 else 2458 { 2459 /* pretend disabled */ 2460 memset(pScreen, 0, sizeof (*pScreen)); 2461 pScreen->u16Flags = VBVA_SCREEN_F_DISABLED; 2462 pScreen->u32ViewIndex = uScreenId; 2463 *ppvVram = NULL; 2464 rc = VINF_SUCCESS; 2465 } 2466 } 2467 else 2468 rc = VERR_INVALID_PARAMETER; 2469 2470 PDMCritSectLeave(&pVGAState->CritSect); 2471 } 2472 return rc; 2473 } -
trunk/src/VBox/Devices/Graphics/DevVGA_VDMA.cpp
r49519 r50149 356 356 } 357 357 358 static DECLCALLBACK(int) vboxVDMACrCmdCltDmGet(HVBOXCRCMDCLT hClt, uint32_t idScreen, struct VBVAINFOSCREEN *pScreen, void **ppvVram) 359 { 360 struct VBOXVDMAHOST *pVdma = hClt; 361 PVGASTATE pVGAState = pVdma->pVGAState; 362 363 return VBVAGetScreenInfo(pVGAState, idScreen, pScreen, ppvVram); 364 } 365 358 366 static int vboxVDMACrCtlHgsmiSetup(struct VBOXVDMAHOST *pVdma) 359 367 { … … 366 374 CltInfo.hClient = pVdma; 367 375 CltInfo.pfnCmdGet = vboxVDMACrCmdCltCmdGet; 376 CltInfo.pfnDmGet = vboxVDMACrCmdCltDmGet; 368 377 PVGASTATE pVGAState = pVdma->pVGAState; 369 378 pCmd->pvVRamBase = pVGAState->vram_ptrR3;
Note:
See TracChangeset
for help on using the changeset viewer.