Changeset 30440 in vbox for trunk/src/VBox/GuestHost/OpenGL/util
- Timestamp:
- Jun 24, 2010 6:51:20 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 63086
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c
r28800 r30440 331 331 static void crVBoxHGCMWriteExact(CRConnection *conn, const void *buf, unsigned int len) 332 332 { 333 CRVBOXHGCMWRITE parms;334 333 int rc; 335 336 parms.hdr.result = VERR_WRONG_ORDER; 337 parms.hdr.u32ClientID = conn->u32ClientID; 338 parms.hdr.u32Function = SHCRGL_GUEST_FN_WRITE; 339 parms.hdr.cParms = SHCRGL_CPARMS_WRITE; 340 341 parms.pBuffer.type = VMMDevHGCMParmType_LinAddr_In; 342 parms.pBuffer.u.Pointer.size = len; 343 parms.pBuffer.u.Pointer.u.linearAddr = (uintptr_t) buf; 344 345 rc = crVBoxHGCMCall(&parms, sizeof(parms)); 346 347 if (RT_FAILURE(rc) || RT_FAILURE(parms.hdr.result)) 348 { 349 crWarning("SHCRGL_GUEST_FN_WRITE failed with %x %x\n", rc, parms.hdr.result); 334 int32_t callRes; 335 336 #ifdef IN_GUEST 337 if (conn->u32InjectClientID) 338 { 339 CRVBOXHGCMINJECT parms; 340 341 parms.hdr.result = VERR_WRONG_ORDER; 342 parms.hdr.u32ClientID = conn->u32ClientID; 343 parms.hdr.u32Function = SHCRGL_GUEST_FN_INJECT; 344 parms.hdr.cParms = SHCRGL_CPARMS_INJECT; 345 346 parms.u32ClientID.type = VMMDevHGCMParmType_32bit; 347 parms.u32ClientID.u.value32 = conn->u32InjectClientID; 348 349 parms.pBuffer.type = VMMDevHGCMParmType_LinAddr_In; 350 parms.pBuffer.u.Pointer.size = len; 351 parms.pBuffer.u.Pointer.u.linearAddr = (uintptr_t) buf; 352 353 rc = crVBoxHGCMCall(&parms, sizeof(parms)); 354 callRes = parms.hdr.result; 355 } 356 else 357 #endif 358 { 359 CRVBOXHGCMWRITE parms; 360 361 parms.hdr.result = VERR_WRONG_ORDER; 362 parms.hdr.u32ClientID = conn->u32ClientID; 363 parms.hdr.u32Function = SHCRGL_GUEST_FN_WRITE; 364 parms.hdr.cParms = SHCRGL_CPARMS_WRITE; 365 366 parms.pBuffer.type = VMMDevHGCMParmType_LinAddr_In; 367 parms.pBuffer.u.Pointer.size = len; 368 parms.pBuffer.u.Pointer.u.linearAddr = (uintptr_t) buf; 369 370 rc = crVBoxHGCMCall(&parms, sizeof(parms)); 371 callRes = parms.hdr.result; 372 } 373 374 if (RT_FAILURE(rc) || RT_FAILURE(callRes)) 375 { 376 crWarning("SHCRGL_GUEST_FN_WRITE failed with %x %x\n", rc, callRes); 350 377 } 351 378 } … … 476 503 _crVBoxHGCMWriteBytes(conn, start, len); 477 504 #else 505 CRASSERT(!conn->u32InjectClientID); 478 506 crDebug("SHCRGL: sending userbuf with %d bytes\n", len); 479 507 crVBoxHGCMWriteReadExact(conn, start, len, CR_VBOXHGCM_USERALLOCATED); … … 493 521 * No need to prepend it to the buffer 494 522 */ 523 #ifdef IN_GUEST 524 if (conn->u32InjectClientID) 525 { 526 crVBoxHGCMWriteExact(conn, start, len); 527 } 528 else 529 #endif 495 530 crVBoxHGCMWriteReadExact(conn, start, len, hgcm_buffer->kind); 496 531
Note:
See TracChangeset
for help on using the changeset viewer.