Changeset 42499 in vbox for trunk/src/VBox/GuestHost/OpenGL/util
- Timestamp:
- Aug 1, 2012 10:26:43 AM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 79662
- Location:
- trunk/src/VBox/GuestHost/OpenGL/util
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/GuestHost/OpenGL/util/net.c
r40124 r42499 73 73 */ 74 74 static void 75 InitConnection(CRConnection *conn, const char *protocol, unsigned int mtu) 75 InitConnection(CRConnection *conn, const char *protocol, unsigned int mtu 76 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 77 , struct VBOXUHGSMI *pHgsmi 78 #endif 79 ) 76 80 { 77 81 if (!crStrcmp(protocol, "devnull")) … … 111 115 cr_net.use_hgcm++; 112 116 crVBoxHGCMInit(cr_net.recv_list, cr_net.close_list, mtu); 113 crVBoxHGCMConnection(conn); 117 crVBoxHGCMConnection(conn 118 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 119 , pHgsmi 120 #endif 121 ); 114 122 } 115 123 #endif … … 184 192 * the mothership 185 193 */ 186 CRConnection * 187 crNetConnectToServer( const char *server, unsigned short default_port, 188 int mtu, int broker ) 194 CRConnection * crNetConnectToServer( const char *server, unsigned short default_port, int mtu, int broker 195 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 196 , struct VBOXUHGSMI *pHgsmi 197 #endif 198 ) 189 199 { 190 200 char hostname[4096], protocol[4096]; … … 270 280 271 281 /* now, just dispatch to the appropriate protocol's initialization functions. */ 272 InitConnection(conn, protocol, mtu); 282 InitConnection(conn, protocol, mtu 283 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 284 , pHgsmi 285 #endif 286 ); 273 287 274 288 if (!crNetConnect( conn )) … … 287 301 } 288 302 289 290 303 /** 291 304 * Send a message to the receiver that another connection is needed. 292 305 * We send a CR_MESSAGE_NEWCLIENT packet, then call crNetServerConnect. 293 306 */ 294 void crNetNewClient( CRConnection *conn, CRNetServer *ns ) 307 void crNetNewClient( CRConnection *conn, CRNetServer *ns 308 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 309 , struct VBOXUHGSMI *pHgsmi 310 #endif 311 ) 295 312 { 296 313 /* … … 308 325 */ 309 326 310 crNetServerConnect( ns ); 327 crNetServerConnect( ns 328 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 329 , pHgsmi 330 #endif 331 ); 311 332 } 312 333 … … 368 389 369 390 /* call the protocol-specific init routines */ // ktd (add) 370 InitConnection(conn, protocol_only, mtu); // ktd (add) 391 InitConnection(conn, protocol_only, mtu 392 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 393 , NULL 394 #endif 395 ); // ktd (add) 371 396 } 372 397 else { 373 398 /* call the protocol-specific init routines */ 374 InitConnection(conn, protocol, mtu); 399 InitConnection(conn, protocol, mtu 400 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 401 , NULL 402 #endif 403 ); 375 404 } 376 405 … … 834 863 * When done, the CrNetServer's conn field will be initialized. 835 864 */ 836 void crNetServerConnect( CRNetServer *ns ) 865 void crNetServerConnect( CRNetServer *ns 866 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 867 , struct VBOXUHGSMI *pHgsmi 868 #endif 869 ) 837 870 { 838 871 ns->conn = crNetConnectToServer( ns->name, DEFAULT_SERVER_PORT, 839 ns->buffer_size, 0 ); 840 } 841 872 ns->buffer_size, 0 873 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 874 , pHgsmi 875 #endif 876 ); 877 } 842 878 843 879 /** … … 1186 1222 if (len) 1187 1223 return len; 1188 crNetRecv(); 1224 crNetRecv( 1225 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 1226 conn 1227 #endif 1228 ); 1189 1229 } 1190 1230 … … 1234 1274 * is assumed to be placed on queues for processing by the handler. 1235 1275 */ 1236 int crNetRecv( void ) 1276 int crNetRecv( 1277 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 1278 CRConnection *conn 1279 #endif 1280 ) 1237 1281 { 1238 1282 int found_work = 0; … … 1242 1286 #ifdef VBOX_WITH_HGCM 1243 1287 if ( cr_net.use_hgcm ) 1244 found_work += crVBoxHGCMRecv(); 1288 found_work += crVBoxHGCMRecv( 1289 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 1290 conn 1291 #endif 1292 ); 1245 1293 #endif 1246 1294 #ifdef SDP_SUPPORT -
trunk/src/VBox/GuestHost/OpenGL/util/net_internals.h
r33561 r42499 92 92 #ifdef VBOX_WITH_HGCM 93 93 extern void crVBoxHGCMInit( CRNetReceiveFuncList *rfl, CRNetCloseFuncList *cfl, unsigned int mtu ); 94 extern void crVBoxHGCMConnection( CRConnection *conn ); 95 extern int crVBoxHGCMRecv( void ); 94 extern void crVBoxHGCMConnection( CRConnection *conn 95 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 96 , struct VBOXUHGSMI *pHgsmi 97 #endif 98 ); 99 extern int crVBoxHGCMRecv( 100 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 101 CRConnection *conn 102 #endif 103 ); 96 104 extern CRConnection** crVBoxHGCMDump( int *num ); 97 105 extern void crVBoxHGCMTearDown(void); -
trunk/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c
r41912 r42499 345 345 return &conn->HgsmiClient; 346 346 { 347 PVBOXUHGSMI pHgsmi = VBoxCrHgsmiCreate();347 PVBOXUHGSMI pHgsmi = conn->pExternalHgsmi ? conn->pExternalHgsmi : VBoxCrHgsmiCreate(); 348 348 if (pHgsmi) 349 349 { … … 356 356 else 357 357 crWarning("_crVBoxHGSMIClientGet: _crVBoxHGSMIClientInit failed rc %d", rc); 358 VBoxCrHgsmiDestroy(pHgsmi); 358 if (!conn->pExternalHgsmi) 359 VBoxCrHgsmiDestroy(pHgsmi); 359 360 } 360 361 else … … 2333 2334 _crVBoxHGSMIClientTerm(&conn->HgsmiClient, &pHgsmi); 2334 2335 CRASSERT(pHgsmi); 2335 VBoxCrHgsmiDestroy(pHgsmi); 2336 if (!conn->pExternalHgsmi) 2337 VBoxCrHgsmiDestroy(pHgsmi); 2336 2338 } 2337 2339 #else … … 2498 2500 } 2499 2501 2500 void crVBoxHGCMConnection(CRConnection *conn) 2502 void crVBoxHGCMConnection(CRConnection *conn 2503 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 2504 , struct VBOXUHGSMI *pHgsmi 2505 #endif 2506 ) 2501 2507 { 2502 2508 int i, found = 0; … … 2520 2526 conn->InstantReclaim = crVBoxHGSMIInstantReclaim; 2521 2527 conn->HandleNewMessage = crVBoxHGSMIHandleNewMessage; 2528 conn->pExternalHgsmi = pHgsmi; 2522 2529 } 2523 2530 else … … 2577 2584 } 2578 2585 2579 int crVBoxHGCMRecv(void) 2586 #if defined(IN_GUEST) 2587 void _crVBoxHGCMPerformPollHost(CRConnection *conn) 2588 { 2589 if (conn->type == CR_NO_CONNECTION ) 2590 return; 2591 2592 if (!conn->pBuffer) 2593 { 2594 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 2595 PCRVBOXHGSMI_CLIENT pClient; 2596 if (g_crvboxhgcm.bHgsmiOn && !!(pClient = _crVBoxHGSMIClientGet(conn))) 2597 { 2598 _crVBoxHGSMIPollHost(conn, pClient); 2599 } 2600 else 2601 #endif 2602 { 2603 crVBoxHGCMPollHost(conn); 2604 } 2605 } 2606 } 2607 #endif 2608 2609 void _crVBoxHGCMPerformReceiveMessage(CRConnection *conn) 2610 { 2611 if ( conn->type == CR_NO_CONNECTION ) 2612 return; 2613 2614 if (conn->cbBuffer>0) 2615 { 2616 _crVBoxHGCMReceiveMessage(conn); 2617 } 2618 } 2619 2620 int crVBoxHGCMRecv( 2621 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 2622 CRConnection *conn 2623 #endif 2624 ) 2580 2625 { 2581 2626 int32_t i; … … 2588 2633 2589 2634 #ifdef IN_GUEST 2635 # if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 2636 CRASSERT(!g_crvboxhgcm.bHgsmiOn == !conn); 2637 if (conn && g_crvboxhgcm.bHgsmiOn) 2638 { 2639 _crVBoxHGCMPerformPollHost(conn); 2640 _crVBoxHGCMPerformReceiveMessage(conn); 2641 VBOXCRHGSMIPROFILE_FUNC_EPILOGUE(); 2642 return 0; 2643 } 2644 # endif 2590 2645 /* we're on guest side, poll host if it got something for us */ 2591 2646 for (i=0; i<g_crvboxhgcm.num_conns; i++) … … 2593 2648 CRConnection *conn = g_crvboxhgcm.conns[i]; 2594 2649 2595 if ( !conn || conn->type == CR_NO_CONNECTION)2650 if ( !conn ) 2596 2651 continue; 2597 2652 2598 if (!conn->pBuffer) 2599 { 2600 #if defined(VBOX_WITH_CRHGSMI) && defined(IN_GUEST) 2601 PCRVBOXHGSMI_CLIENT pClient; 2602 if (g_crvboxhgcm.bHgsmiOn && !!(pClient = _crVBoxHGSMIClientGet(conn))) 2603 { 2604 _crVBoxHGSMIPollHost(conn, pClient); 2605 } 2606 else 2607 #endif 2608 { 2609 crVBoxHGCMPollHost(conn); 2610 } 2611 } 2653 _crVBoxHGCMPerformPollHost(conn); 2612 2654 } 2613 2655 #endif … … 2617 2659 CRConnection *conn = g_crvboxhgcm.conns[i]; 2618 2660 2619 if ( !conn || conn->type == CR_NO_CONNECTION)2661 if ( !conn ) 2620 2662 continue; 2621 2663 2622 if (conn->cbBuffer>0) 2623 { 2624 _crVBoxHGCMReceiveMessage(conn); 2625 } 2664 _crVBoxHGCMPerformReceiveMessage(conn); 2626 2665 } 2627 2666
Note:
See TracChangeset
for help on using the changeset viewer.