Changeset 45972 in vbox for trunk/src/VBox/Devices
- Timestamp:
- May 9, 2013 9:06:06 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 85624
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DevATA.cpp
r45025 r45972 179 179 /** Elementary ATA/ATAPI transfer size, shared PIO/DMA. */ 180 180 uint32_t cbElementaryTransfer; 181 /** Maximum ATAPI elementary transfer size, PIO only. */ 182 uint32_t cbPIOTransferLimit; 181 183 /** Current read/write buffer position, shared PIO/DMA. */ 182 184 uint32_t iIOBufferCur; … … 1009 1011 uint32_t cbLimit, cbTransfer; 1010 1012 1011 cbLimit = s-> uATARegLCyl | (s->uATARegHCyl << 8);1013 cbLimit = s->cbPIOTransferLimit; 1012 1014 /* Use maximum transfer size if the guest requested 0. Avoids a hang. */ 1013 1015 if (cbLimit == 0) … … 1735 1737 s->fATAPITransfer = true; 1736 1738 s->cbElementaryTransfer = s->cbTotalTransfer; 1739 s->cbPIOTransferLimit = s->uATARegLCyl | (s->uATARegHCyl << 8); 1737 1740 if (s->uTxDir == PDMBLOCKTXDIR_TO_DEVICE) 1738 1741 atapiCmdOK(s); … … 6659 6662 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].cbTotalTransfer); 6660 6663 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].cbElementaryTransfer); 6664 /* NB: cbPIOTransferLimit could be saved/restored but it's sufficient 6665 * to re-calculate it here, with a tiny risk that it could be 6666 * unnecessarily low for the current transfer only. Could be changed 6667 * when changing the saved state in the future. 6668 */ 6669 pThis->aCts[i].aIfs[j].cbPIOTransferLimit = (pThis->aCts[i].aIfs[j].uATARegHCyl << 8) | pThis->aCts[i].aIfs[j].uATARegLCyl; 6661 6670 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].iIOBufferCur); 6662 6671 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].iIOBufferEnd);
Note:
See TracChangeset
for help on using the changeset viewer.