VirtualBox

Changeset 50831 in vbox for trunk/src/VBox/HostServices


Ignore:
Timestamp:
Mar 20, 2014 5:40:50 PM (11 years ago)
Author:
vboxsync
Message:

crOpnGL: new command submission continued

Location:
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server.h

    r50812 r50831  
    464464void CrFbTexDataInit(CR_TEXDATA* pFbTex, const VBOXVR_TEXTURE *pTex, PFNCRTEXDATA_RELEASED pfnTextureReleased);
    465465
    466 int32_t crVBoxServerCrCmdBltProcess(PVBOXCMDVBVA_HDR pCmd, uint32_t cbCmd);
     466int8_t crVBoxServerCrCmdBltProcess(const VBOXCMDVBVA_HDR *pCmd, uint32_t cbCmd);
    467467
    468468//#define VBOX_WITH_CRSERVER_DUMPER
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c

    r50827 r50831  
    6060int tearingdown = 0; /* can't be static */
    6161
    62 static DECLCALLBACK(int) crVBoxCrCmdCmd(HVBOXCRCMDSVR hSvr, PVBOXCMDVBVA_HDR pCmd, uint32_t cbCmd);
     62static DECLCALLBACK(int8_t) crVBoxCrCmdCmd(HVBOXCRCMDSVR hSvr, const VBOXCMDVBVA_HDR *pCmd, uint32_t cbCmd);
    6363
    6464DECLINLINE(CRClient*) crVBoxServerClientById(uint32_t u32ClientID)
     
    29892989#ifdef VBOX_WITH_CRHGSMI
    29902990
    2991 static int32_t crVBoxServerCmdVbvaCrCmdProcess(struct VBOXCMDVBVA_CRCMD_CMD *pCmd, uint32_t cbCmd)
     2991static int32_t crVBoxServerCmdVbvaCrCmdProcess(const struct VBOXCMDVBVA_CRCMD_CMD *pCmd, uint32_t cbCmd)
    29922992{
    29932993    int32_t rc;
     
    30473047            {
    30483048                CRVBOXHGSMIWRITE* pFnCmd = (CRVBOXHGSMIWRITE*)pHdr;
    3049                 VBOXCMDVBVA_CRCMD_BUFFER *pBuf = &pCmd->aBuffers[1];
     3049                const VBOXCMDVBVA_CRCMD_BUFFER *pBuf = &pCmd->aBuffers[1];
    30503050                /* Fetch parameters. */
    30513051                uint32_t cbBuffer = pBuf->cbBuffer;
     
    31033103                /* Fetch parameters. */
    31043104                uint32_t u32InjectClientID = pFnCmd->u32ClientID;
    3105                 VBOXCMDVBVA_CRCMD_BUFFER *pBuf = &pCmd->aBuffers[1];
     3105                const VBOXCMDVBVA_CRCMD_BUFFER *pBuf = &pCmd->aBuffers[1];
    31063106                uint32_t cbBuffer = pBuf->cbBuffer;
    31073107                uint8_t *pBuffer  = VBOXCRHGSMI_PTR_SAFE(pBuf->offBuffer, cbBuffer, uint8_t);
     
    31533153            {
    31543154                CRVBOXHGSMIREAD *pFnCmd = (CRVBOXHGSMIREAD*)pHdr;
    3155                 VBOXCMDVBVA_CRCMD_BUFFER *pBuf = &pCmd->aBuffers[1];
     3155                const VBOXCMDVBVA_CRCMD_BUFFER *pBuf = &pCmd->aBuffers[1];
    31563156                /* Fetch parameters. */
    31573157                uint32_t cbBuffer = pBuf->cbBuffer;
     
    32073207            {
    32083208                CRVBOXHGSMIWRITEREAD *pFnCmd = (CRVBOXHGSMIWRITEREAD*)pHdr;
    3209                 VBOXCMDVBVA_CRCMD_BUFFER *pBuf = &pCmd->aBuffers[1];
    3210                 VBOXCMDVBVA_CRCMD_BUFFER *pWbBuf = &pCmd->aBuffers[2];
     3209                const VBOXCMDVBVA_CRCMD_BUFFER *pBuf = &pCmd->aBuffers[1];
     3210                const VBOXCMDVBVA_CRCMD_BUFFER *pWbBuf = &pCmd->aBuffers[2];
    32113211
    32123212                /* Fetch parameters. */
     
    34523452
    34533453
    3454 static DECLCALLBACK(int) crVBoxCrCmdCmd(HVBOXCRCMDSVR hSvr, PVBOXCMDVBVA_HDR pCmd, uint32_t cbCmd)
     3454static DECLCALLBACK(int8_t) crVBoxCrCmdCmd(HVBOXCRCMDSVR hSvr, const VBOXCMDVBVA_HDR *pCmd, uint32_t cbCmd)
    34553455{
    34563456    AssertFailed();
     
    34593459        case VBOXCMDVBVA_OPTYPE_CRCMD:
    34603460        {
    3461             VBOXCMDVBVA_CRCMD *pCrCmdDr;
    3462             VBOXCMDVBVA_CRCMD_CMD *pCrCmd;
     3461            const VBOXCMDVBVA_CRCMD *pCrCmdDr;
     3462            const VBOXCMDVBVA_CRCMD_CMD *pCrCmd;
    34633463            int rc;
    3464             pCrCmdDr = (VBOXCMDVBVA_CRCMD*)pCmd;
     3464            pCrCmdDr = (const VBOXCMDVBVA_CRCMD*)pCmd;
    34653465            pCrCmd = &pCrCmdDr->Cmd;
    34663466            if (cbCmd < sizeof (VBOXCMDVBVA_CRCMD))
    34673467            {
    34683468                WARN(("invalid buffer size"));
    3469                 pCmd->u.i8Result = -1;
    3470                 break;
     3469                return -1;
    34713470            }
    34723471            rc = crVBoxServerCmdVbvaCrCmdProcess(pCrCmd, cbCmd - RT_OFFSETOF(VBOXCMDVBVA_CRCMD, Cmd));
    34733472            if (RT_SUCCESS(rc))
    34743473            {
    3475             /* success */
    3476                 pCmd->u.i8Result = 0;
     3474                /* success */
     3475                return 0;
    34773476            }
    3478             else
    3479             {
    3480                 WARN(("crVBoxServerCmdVbvaCrCmdProcess failed, rc %d", rc));
    3481                 pCmd->u.i8Result = -1;
    3482             }
    3483             break;
     3477
     3478            WARN(("crVBoxServerCmdVbvaCrCmdProcess failed, rc %d", rc));
     3479            return -1;
    34843480        }
    34853481        case VBOXCMDVBVA_OPTYPE_BLT_OFFPRIMSZFMT_OR_ID:
    34863482        {
    3487             crVBoxServerCrCmdBltProcess(pCmd, cbCmd);
    3488             break;
     3483            return crVBoxServerCrCmdBltProcess(pCmd, cbCmd);
    34893484        }
    34903485        default:
    34913486            WARN(("unsupported command"));
    3492             pCmd->u.i8Result = -1;
    3493     }
    3494     return VINF_SUCCESS;
     3487            return -1;
     3488    }
     3489
     3490    WARN(("internal error"));
     3491    return -1;
    34953492}
    34963493
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_presenter.cpp

    r50827 r50831  
    46294629}
    46304630
    4631 int32_t crVBoxServerCrCmdBltProcess(PVBOXCMDVBVA_HDR pCmd, uint32_t cbCmd)
     4631int8_t crVBoxServerCrCmdBltProcess(const VBOXCMDVBVA_HDR *pCmd, uint32_t cbCmd)
    46324632{
    46334633    uint8_t u8Flags = pCmd->u8Flags;
     
    46404640        {
    46414641            WARN(("request to present on disabled framebuffer, ignore"));
    4642             pCmd->u.i8Result = -1;
    4643             return VINF_SUCCESS;
     4642            return -1;
    46444643        }
    46454644
     
    46584657                WARN(("RTMemAlloc failed!"));
    46594658                g_CrPresenter.cbTmpBuf = 0;
    4660                 pCmd->u.i8Result = -1;
    4661                 return VINF_SUCCESS;
     4659                return -1;
    46624660            }
    46634661        }
     
    46904688                    {
    46914689                        WARN(("invalid param"));
    4692                         pCmd->u.i8Result = -1;
    4693                         return VINF_SUCCESS;
     4690                        return -1;
    46944691                    }
    46954692
     
    47024699                    {
    47034700                        WARN(("CrFbBltPutContentsNe failed %d", rc));
    4704                         return rc;
     4701                        return -1;
    47054702                    }
    47064703
     
    47664763                    }
    47674764                }
    4768                 return VINF_SUCCESS;
     4765                return 0;
    47694766            }
    47704767            else
     
    47724769                /* blit from one primary to another primary, wow */
    47734770                WARN(("not implemented"));
    4774                 pCmd->u.i8Result = -1;
    4775                 return VINF_SUCCESS;
     4771                return -1;
    47764772            }
    47774773        }
     
    47844780                uint32_t texId = pBlt->alloc.u.id;
    47854781                WARN(("not implemented"));
    4786                 pCmd->u.i8Result = -1;
    4787                 return VINF_SUCCESS;
     4782                return -1;
    47884783            }
    47894784            else
     
    47964791                {
    47974792                    WARN(("invalid param"));
    4798                     pCmd->u.i8Result = -1;
    4799                     return VINF_SUCCESS;
     4793                    return -1;
    48004794                }
    48014795
     
    48184812                {
    48194813                    WARN(("CrFbBltGetContents failed %d", rc));
    4820                     pCmd->u.i8Result = -1;
    4821                     return VINF_SUCCESS;
     4814                    return -1;
    48224815                }
    48234816            }
     
    48274820    {
    48284821        WARN(("not implemented"));
    4829         pCmd->u.i8Result = -1;
    4830         return VINF_SUCCESS;
    4831     }
    4832 
    4833     pCmd->u.i8Result = 0;
    4834     return VINF_SUCCESS;
    4835 }
     4822        return -1;
     4823    }
     4824
     4825    return 0;
     4826}
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