crservice.cpp revision bd810d58866067df322ea7f4a4627d9bdebb70d3
1008N/A * available from http://www.virtualbox.org. This file is free software;
1008N/A * Clara, CA 95054 USA or visit http://www.sun.com if you need
1008N/A#ifdef RT_OS_WINDOWS
2367N/A#include "cr_server.h"
1008N/A#include "cr_server.h"
1008N/A#include "render/renderspu.h"
1008N/A#ifndef RT_OS_WINDOWS
1008N/A#define CR_USE_HGCM
static int crIsThreadWorking=0;
crIsThreadWorking = 0;
return rc;
#ifndef CR_USE_HGCM
if (!crIsThreadWorking)
HANDLE h;
return rc;
#ifndef CR_USE_HGCM
return rc;
static DECLCALLBACK(int) svcSaveState(void *, uint32_t u32ClientID, void *pvClient, PSSMHANDLE pSSM)
int rc;
return VINF_SUCCESS;
static DECLCALLBACK(int) svcLoadState(void *, uint32_t u32ClientID, void *pvClient, PSSMHANDLE pSSM)
int rc;
return VERR_SSM_UNEXPECTED_DATA;
return rc;
return VERR_SSM_UNEXPECTED_DATA;
return VINF_SUCCESS;
/*MS's opengl32 tryes to load our ICD around 30 times on failure...this is to prevent unnecessary spam*/
static int shown = 0;
static DECLCALLBACK(void) svcCall (void *, VBOXHGCMCALLHANDLE callHandle, uint32_t u32ClientID, void *pvClient, uint32_t u32Function, uint32_t cParms, VBOXHGCMSVCPARM paParms[])
Log(("SHARED_CROPENGL svcCall: u32ClientID = %d, fn = %d, cParms = %d, pparms = %d\n", u32ClientID, u32Function, cParms, paParms));
#ifdef DEBUG
uint32_t i;
for (i = 0; i < cParms; i++)
switch (u32Function)
case SHCRGL_GUEST_FN_WRITE:
svcClientVersionUnsupported(0, 0);
case SHCRGL_GUEST_FN_READ:
svcClientVersionUnsupported(0, 0);
svcClientVersionUnsupported(0, 0);
static DECLCALLBACK(int) svcHostCall (void *, uint32_t u32Function, uint32_t cParms, VBOXHGCMSVCPARM paParms[])
Log(("SHARED_CROPENGL svcHostCall: fn = %d, cParms = %d, pparms = %d\n", u32Function, cParms, paParms));
#ifdef DEBUG
uint32_t i;
for (i = 0; i < cParms; i++)
switch (u32Function)
case SHCRGL_HOST_FN_SET_VM:
return rc;
if (!ptable)
Log(("VBoxHGCMSvcLoad: ptable->cbSize = %d, ptable->u32Version = 0x%08X\n", ptable->cbSize, ptable->u32Version));
#ifdef CR_USE_HGCM
if (!crVBoxServerInit())
return VERR_NOT_SUPPORTED;
return rc;