VirtualBox

Changeset 22548 in vbox


Ignore:
Timestamp:
Aug 28, 2009 11:10:39 AM (15 years ago)
Author:
vboxsync
Message:

HGSMI/VBVA use port IO for guest commands in display driver instead of miniport callback.

Location:
trunk/src/VBox/Additions/WINNT/Graphics
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/driver.h

    r22448 r22548  
    207207
    208208    HVBOXVIDEOHGSMI hMpHGSMI; /* context handler passed to miniport HGSMI callbacks */
    209     PFNVBOXVIDEOHGSMIPOSTCOMMAND pfnHGSMIGHCommandPost; /* called to post the guest command (offset) to the host */
    210209    PFNVBOXVIDEOHGSMICOMPLETION pfnHGSMICommandComplete; /* called to complete the command we receive from the miniport */
    211210    PFNVBOXVIDEOHGSMICOMMANDS   pfnHGSMIRequestCommands; /* called to requests the commands posted to us from the host */
     211
     212    RTIOPORT IOPortGuestCommand;
    212213
    213214    PVOID pVideoPortContext;
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/screen.c

    r22448 r22548  
    123123
    124124            ppdev->hMpHGSMI = Callbacks.hContext;
    125             ppdev->pfnHGSMIGHCommandPost = Callbacks.pfnHGSMIGHCommandPost;
    126125            ppdev->pfnHGSMICommandComplete = Callbacks.pfnCompletionHandler;
    127126            ppdev->pfnHGSMIRequestCommands = Callbacks.pfnRequestCommandsHandler;
     
    272271
    273272            ppdev->bHGSMISupported = FALSE;
     273        }
     274        else
     275        {
     276            ppdev->IOPortGuestCommand = info.IOPortGuestCommand;
    274277        }
    275278    }
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/vbox.c

    r22475 r22548  
    347347    DISPDBG((0, "VBoxDISP::vboxHGSMIBufferSubmit: offset 0x%x\n", offBuffer));
    348348
    349     ppdev->pfnHGSMIGHCommandPost(ppdev->hMpHGSMI, offBuffer);
     349    ASMOutU32(ppdev->IOPortGuestCommand, offBuffer);
    350350}
    351351
  • trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp

    r22547 r22548  
    19641964            pInfo->u32MinVBVABufferSize = VBVA_MIN_BUFFER_SIZE;
    19651965
     1966            pInfo->IOPortGuestCommand = pDevExt->pPrimary->u.primary.IOPortGuest;
     1967
    19661968            RequestPacket->StatusBlock->Information = sizeof(QUERYHGSMIRESULT);
    19671969            Result = TRUE;
     
    19901992
    19911993            pInfo->hContext = pDevExt;
    1992             pInfo->pfnHGSMIGHCommandPost = hgsmiGHCommandPost;
    19931994            pInfo->pfnCompletionHandler = hgsmiHostCmdComplete;
    19941995            pInfo->pfnRequestCommandsHandler = hgsmiHostCmdRequest;
  • trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.h

    r22469 r22548  
    368368                                PVIDEO_POINTER_ATTRIBUTES pointerAttr,
    369369                                uint32_t cbLength);
    370 DECLCALLBACK(void) hgsmiGHCommandPost(HVBOXVIDEOHGSMI hHGSMI, HGSMIOFFSET offCmd);
    371370DECLCALLBACK(void) hgsmiHostCmdComplete (HVBOXVIDEOHGSMI hHGSMI, struct _VBVAHOSTCMD * pCmd);
    372371DECLCALLBACK(int) hgsmiHostCmdRequest (HVBOXVIDEOHGSMI hHGSMI, uint8_t u8Channel, struct _VBVAHOSTCMD ** ppCmd);
  • trunk/src/VBox/Additions/WINNT/Graphics/Miniport/vboxioctl.h

    r22448 r22548  
    122122    uint32_t u32DisplayInfoSize;
    123123
    124     /* Minimum size of the VBAV buffer. */
     124    /* Minimum size of the VBVA buffer. */
    125125    uint32_t u32MinVBVABufferSize;
     126
     127    /* IO port to submit guest HGSMI commands. */
     128    RTIOPORT IOPortGuestCommand;
    126129} QUERYHGSMIRESULT;
    127130
     
    133136{
    134137    HVBOXVIDEOHGSMI hContext;
    135     PFNVBOXVIDEOHGSMIPOSTCOMMAND pfnHGSMIGHCommandPost;
    136138    PFNVBOXVIDEOHGSMICOMPLETION pfnCompletionHandler;
    137139    PFNVBOXVIDEOHGSMICOMMANDS   pfnRequestCommandsHandler;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette