Changeset 1812 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Mar 29, 2007 5:49:36 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PDM.cpp
r1774 r1812 328 328 * The attached drivers are processed first. 329 329 * N.B. There is no need to mess around freeing memory allocated 330 * from any MM heap since MM will do that in it 's Term function.330 * from any MM heap since MM will do that in its Term function. 331 331 */ 332 332 for (PPDMDEVINS pDevIns = pVM->pdm.s.pDevInstances; pDevIns; pDevIns = pDevIns->Internal.s.pNextHC) … … 334 334 for (PPDMLUN pLun = pDevIns->Internal.s.pLunsHC; pLun; pLun = pLun->pNext) 335 335 { 336 PPDMDRVINS pDrvIns;337 338 /* Find the bottom driver */339 for (pDrvIns = pLun->pTop; pDrvIns && pDrvIns->Internal.s.pDown; pDrvIns =pDrvIns->Internal.s.pDown)340 ;341 342 /* And destroy them one at a time from the bottom up */336 /* Find the bottom driver. */ 337 /** @todo Add pBottom to PDMLUN, this might not be the only place we will have to work it from the bottom up. */ 338 PPDMDRVINS pDrvIns = pLun->pTop; 339 while (pDrvIns && pDrvIns->Internal.s.pDown) 340 pDrvIns = pDrvIns->Internal.s.pDown; 341 342 /* And destroy them one at a time from the bottom up. */ 343 343 while (pDrvIns) 344 344 { … … 352 352 TMR3TimerDestroyDriver(pVM, pDrvIns); 353 353 } 354 354 355 pDrvIns = pDrvNext; 355 356 } … … 600 601 { 601 602 for (PPDMLUN pLun = pDevIns->Internal.s.pLunsHC; pLun; pLun = pLun->pNext) 603 /** @todo Inverse the order here? */ 602 604 for (PPDMDRVINS pDrvIns = pLun->pTop; pDrvIns; pDrvIns = pDrvIns->Internal.s.pDown) 603 605 if (pDrvIns->pDrvReg->pfnPowerOn) … … 646 648 { 647 649 for (PPDMLUN pLun = pDevIns->Internal.s.pLunsHC; pLun; pLun = pLun->pNext) 650 /** @todo Inverse the order here? */ 648 651 for (PPDMDRVINS pDrvIns = pLun->pTop; pDrvIns; pDrvIns = pDrvIns->Internal.s.pDown) 649 652 if (pDrvIns->pDrvReg->pfnReset) … … 683 686 { 684 687 for (PPDMLUN pLun = pDevIns->Internal.s.pLunsHC; pLun; pLun = pLun->pNext) 688 /** @todo Inverse the order here? */ 685 689 for (PPDMDRVINS pDrvIns = pLun->pTop; pDrvIns; pDrvIns = pDrvIns->Internal.s.pDown) 686 690 if (pDrvIns->pDrvReg->pfnSuspend) … … 720 724 { 721 725 for (PPDMLUN pLun = pDevIns->Internal.s.pLunsHC; pLun; pLun = pLun->pNext) 726 /** @todo Inverse the order here? */ 722 727 for (PPDMDRVINS pDrvIns = pLun->pTop; pDrvIns; pDrvIns = pDrvIns->Internal.s.pDown) 723 728 if (pDrvIns->pDrvReg->pfnResume) … … 757 762 { 758 763 for (PPDMLUN pLun = pDevIns->Internal.s.pLunsHC; pLun; pLun = pLun->pNext) 764 /** @todo Inverse the order here? */ 759 765 for (PPDMDRVINS pDrvIns = pLun->pTop; pDrvIns; pDrvIns = pDrvIns->Internal.s.pDown) 760 766 if (pDrvIns->pDrvReg->pfnPowerOff)
Note:
See TracChangeset
for help on using the changeset viewer.