Changeset 28412 in vbox for trunk/src/VBox
- Timestamp:
- Apr 16, 2010 12:49:03 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 60176
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp
r28381 r28412 578 578 PDMCritSectLeave(&pLsiLogic->ReplyPostQueueCritSect); 579 579 } 580 581 static void lsilogicTaskStateClear(PLSILOGICTASKSTATE pTaskState) 582 { 583 RTMemFree(pTaskState->pSGListHead); 584 RTMemFree(pTaskState->paSGEntries); 585 if (pTaskState->pvBufferUnaligned) 586 RTMemPageFree(pTaskState->pvBufferUnaligned, pTaskState->cbBufferUnaligned); 587 pTaskState->cSGListSize = 0; 588 pTaskState->cSGInfoSize = 0; 589 pTaskState->cSGInfoEntries = 0; 590 pTaskState->cSGListTooBig = 0; 591 pTaskState->pSGListHead = NULL; 592 pTaskState->paSGEntries = NULL; 593 pTaskState->pvBufferUnaligned = NULL; 594 pTaskState->cbBufferUnaligned = 0; 595 } 596 597 static int lsilogicTaskStateCtor(RTMEMCACHE hMemCache, void *pvObj, void *pvUser) 598 { 599 memset(pvObj, 0, sizeof(LSILOGICTASKSTATE)); 600 return VINF_SUCCESS; 601 } 602 603 static void lsilogicTaskStateDtor(RTMEMCACHE hMemCache, void *pvObj, void *pvUser) 604 { 605 PLSILOGICTASKSTATE pTaskState = (PLSILOGICTASKSTATE)pvObj; 606 lsilogicTaskStateClear(pTaskState); 607 } 608 580 609 #endif /* IN_RING3 */ 581 610 … … 1483 1512 /* Free allocated memory if the list was too big too many times. */ 1484 1513 if (pTaskState->cSGListTooBig >= LSILOGIC_NR_OF_ALLOWED_BIGGER_LISTS) 1485 { 1486 RTMemFree(pTaskState->pSGListHead); 1487 RTMemFree(pTaskState->paSGEntries); 1488 if (pTaskState->pvBufferUnaligned) 1489 RTMemPageFree(pTaskState->pvBufferUnaligned, pTaskState->cbBufferUnaligned); 1490 pTaskState->cSGListSize = 0; 1491 pTaskState->cSGInfoSize = 0; 1492 pTaskState->cSGInfoEntries = 0; 1493 pTaskState->cSGListTooBig = 0; 1494 pTaskState->pSGListHead = NULL; 1495 pTaskState->paSGEntries = NULL; 1496 pTaskState->pvBufferUnaligned = NULL; 1497 pTaskState->cbBufferUnaligned = 0; 1498 } 1514 lsilogicTaskStateClear(pTaskState); 1499 1515 } 1500 1516 … … 4555 4571 */ 4556 4572 rc = RTMemCacheCreate(&pThis->hTaskCache, sizeof(LSILOGICTASKSTATE), 0, UINT32_MAX, 4557 NULL, NULL, NULL, 0);4573 lsilogicTaskStateCtor, lsilogicTaskStateDtor, NULL, 0); 4558 4574 if (RT_FAILURE(rc)) 4559 4575 return PDMDEV_SET_ERROR(pDevIns, rc,
Note:
See TracChangeset
for help on using the changeset viewer.