void crSDPInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu ) { (void) mtu; cr_sdp.recv_list = rfl; cr_sdp.close_list = cfl; if ( cr_sdp.initialized ) { return; } cr_sdp.initialized = 1; crDebug("Initializing SDP"); cr_sdp.num_conns = 0; cr_sdp.conns = NULL; cr_sdp.server_sock = -1; #ifdef CHROMIUM_THREADSAFE crInitMutex(&cr_sdp.mutex); crInitMutex(&cr_sdp.recvmutex); #endif cr_sdp.bufpool = crBufferPoolInit(16); }
static DECLCALLBACK(HVBOXCRHGSMI_CLIENT) _crVBoxHGSMIClientCreate(PVBOXUHGSMI pHgsmi) { PCRVBOXHGSMI_CLIENT pClient = crAlloc(sizeof (CRVBOXHGSMI_CLIENT)); if (pClient) { int rc; pClient->pHgsmi = pHgsmi; rc = pHgsmi->pfnBufferCreate(pHgsmi, CRVBOXHGSMI_PAGE_ALIGN(1), VBOXUHGSMI_SYNCHOBJECT_TYPE_EVENT, NULL, &pClient->pCmdBuffer); AssertRC(rc); if (RT_SUCCESS(rc)) { rc = pHgsmi->pfnBufferCreate(pHgsmi, CRVBOXHGSMI_PAGE_ALIGN(0x800000), VBOXUHGSMI_SYNCHOBJECT_TYPE_EVENT, NULL, &pClient->pHGBuffer); AssertRC(rc); if (RT_SUCCESS(rc)) { pClient->pvHGBuffer = NULL; pClient->bufpool = crBufferPoolInit(16); return (HVBOXCRHGSMI_CLIENT) pClient; } } } return NULL; }
bool crVBoxHGSMIInit(CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu) { /* static */ int bHasHGSMI = -1; /* do it for all connections */ (void) mtu; if (bHasHGSMI < 0) { int rc; VBOXCRHGSMI_CALLBACKS Callbacks; Callbacks.pfnClientCreate = _crVBoxHGSMIClientCreate; Callbacks.pfnClientDestroy = _crVBoxHGSMIClientDestroy; rc = VBoxCrHgsmiInit(&Callbacks); AssertRC(rc); if (RT_SUCCESS(rc)) bHasHGSMI = 1; else bHasHGSMI = 0; } Assert(bHasHGSMI); if (!bHasHGSMI) { #ifdef DEBUG_misha AssertRelease(0); #endif return false; } g_crvboxhgsmi.recv_list = rfl; g_crvboxhgsmi.close_list = cfl; if (g_crvboxhgsmi.initialized) { return true; } g_crvboxhgsmi.initialized = 1; g_crvboxhgsmi.num_conns = 0; g_crvboxhgsmi.conns = NULL; g_crvboxhgsmi.mempool = crBufferPoolInit(16); /* Can't open VBox guest driver here, because it gets called for host side as well */ /*@todo as we have 2 dll versions, can do it now.*/ #ifdef RT_OS_WINDOWS g_crvboxhgsmi.hGuestDrv = INVALID_HANDLE_VALUE; #else g_crvboxhgsmi.iGuestDrv = INVALID_HANDLE_VALUE; #endif #ifdef CHROMIUM_THREADSAFE crInitMutex(&g_crvboxhgsmi.mutex); crInitMutex(&g_crvboxhgsmi.recvmutex); #endif return true; }
void crFileInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu ) { (void) mtu; cr_file.recv_list = rfl; cr_file.close_list = cfl; if (cr_file.initialized) { return; } cr_file.num_conns = 0; cr_file.conns = NULL; #ifdef CHROMIUM_THREADSAFE crInitMutex(&cr_file.mutex); #endif cr_file.bufpool = crBufferPoolInit(16); cr_file.initialized = 1; }