Changeset 28980 in vbox for trunk/src/VBox/Devices
- Timestamp:
- May 3, 2010 2:45:14 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DevATA.cpp
r28800 r28980 5 5 6 6 /* 7 * Copyright (C) 2006-20 08Oracle Corporation7 * Copyright (C) 2006-2010 Oracle Corporation 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as … … 417 417 ATARequest aAsyncIORequests[4]; 418 418 /** The position at which to insert a new request for the AIO thread. */ 419 uint8_tAsyncIOReqHead;419 volatile uint8_t AsyncIOReqHead; 420 420 /** The position at which to get a new request for the AIO thread. */ 421 uint8_tAsyncIOReqTail;421 volatile uint8_t AsyncIOReqTail; 422 422 /** Whether to call PDMDevHlpAsyncNotificationCompleted when idle. */ 423 423 bool volatile fSignalIdle; … … 1133 1133 { 1134 1134 Log(("%s: code=%#x\n", __FUNCTION__, uErrorCode)); 1135 Assert(uErrorCode); 1135 1136 s->uATARegError = uErrorCode; 1136 1137 ataSetStatusValue(s, ATA_STAT_READY | ATA_STAT_ERR); … … 5063 5064 * mid-flight. Not allowed, according to the PIIX3 specs. */ 5064 5065 Assert(!(pCtl->BmDma.u8Status & BM_STATUS_DMAING) || !((val ^ pCtl->BmDma.u8Cmd) & 0x04)); 5066 uint8_t uOldBmDmaStatus = pCtl->BmDma.u8Status; 5065 5067 pCtl->BmDma.u8Status |= BM_STATUS_DMAING; 5066 5068 pCtl->BmDma.u8Cmd = val & (BM_CMD_START | BM_CMD_WRITE); … … 5073 5075 } 5074 5076 5075 /* Do not start DMA transfers if there's a PIO transfer going on. */ 5076 if (!pCtl->aIfs[pCtl->iSelectedIf].fDMA) 5077 /* Do not start DMA transfers if there's a PIO transfer going on, 5078 * or if there is already a transfer started on this controller. */ 5079 if ( !pCtl->aIfs[pCtl->iSelectedIf].fDMA 5080 || (uOldBmDmaStatus & BM_STATUS_DMAING)) 5077 5081 return; 5078 5082
Note:
See TracChangeset
for help on using the changeset viewer.