Lines Matching defs:aIfs

411     ATADevState aIfs[2];
457 AssertCompileMemberAlignment(ATACONTROLLER, aIfs, 8);
950 if (s == &pCtl->aIfs[pCtl->iSelectedIf])
974 if (s == &pCtl->aIfs[pCtl->iSelectedIf])
4272 Log2(("%s: LUN#%d write addr=%#x val=%#04x\n", __FUNCTION__, pCtl->aIfs[pCtl->iSelectedIf].iLUN, addr, val));
4280 pCtl->aIfs[0].uATARegDevCtl &= ~ATA_DEVCTL_HOB;
4281 pCtl->aIfs[1].uATARegDevCtl &= ~ATA_DEVCTL_HOB;
4282 pCtl->aIfs[0].uATARegFeatureHOB = pCtl->aIfs[0].uATARegFeature;
4283 pCtl->aIfs[1].uATARegFeatureHOB = pCtl->aIfs[1].uATARegFeature;
4284 pCtl->aIfs[0].uATARegFeature = val;
4285 pCtl->aIfs[1].uATARegFeature = val;
4288 pCtl->aIfs[0].uATARegDevCtl &= ~ATA_DEVCTL_HOB;
4289 pCtl->aIfs[1].uATARegDevCtl &= ~ATA_DEVCTL_HOB;
4290 pCtl->aIfs[0].uATARegNSectorHOB = pCtl->aIfs[0].uATARegNSector;
4291 pCtl->aIfs[1].uATARegNSectorHOB = pCtl->aIfs[1].uATARegNSector;
4292 pCtl->aIfs[0].uATARegNSector = val;
4293 pCtl->aIfs[1].uATARegNSector = val;
4296 pCtl->aIfs[0].uATARegDevCtl &= ~ATA_DEVCTL_HOB;
4297 pCtl->aIfs[1].uATARegDevCtl &= ~ATA_DEVCTL_HOB;
4298 pCtl->aIfs[0].uATARegSectorHOB = pCtl->aIfs[0].uATARegSector;
4299 pCtl->aIfs[1].uATARegSectorHOB = pCtl->aIfs[1].uATARegSector;
4300 pCtl->aIfs[0].uATARegSector = val;
4301 pCtl->aIfs[1].uATARegSector = val;
4304 pCtl->aIfs[0].uATARegDevCtl &= ~ATA_DEVCTL_HOB;
4305 pCtl->aIfs[1].uATARegDevCtl &= ~ATA_DEVCTL_HOB;
4306 pCtl->aIfs[0].uATARegLCylHOB = pCtl->aIfs[0].uATARegLCyl;
4307 pCtl->aIfs[1].uATARegLCylHOB = pCtl->aIfs[1].uATARegLCyl;
4308 pCtl->aIfs[0].uATARegLCyl = val;
4309 pCtl->aIfs[1].uATARegLCyl = val;
4312 pCtl->aIfs[0].uATARegDevCtl &= ~ATA_DEVCTL_HOB;
4313 pCtl->aIfs[1].uATARegDevCtl &= ~ATA_DEVCTL_HOB;
4314 pCtl->aIfs[0].uATARegHCylHOB = pCtl->aIfs[0].uATARegHCyl;
4315 pCtl->aIfs[1].uATARegHCylHOB = pCtl->aIfs[1].uATARegHCyl;
4316 pCtl->aIfs[0].uATARegHCyl = val;
4317 pCtl->aIfs[1].uATARegHCyl = val;
4320 pCtl->aIfs[0].uATARegSelect = (val & ~0x10) | 0xa0;
4321 pCtl->aIfs[1].uATARegSelect = (val | 0x10) | 0xa0;
4332 if ( !(pCtl->aIfs[pCtl->iSelectedIf].uATARegDevCtl & ATA_DEVCTL_DISABLE_IRQ)
4333 && ( pCtl->aIfs[pCtl->iSelectedIf].fIrqPending
4334 != pCtl->aIfs[pCtl->iSelectedIf ^ 1].fIrqPending))
4336 if (pCtl->aIfs[pCtl->iSelectedIf].fIrqPending)
4338 Log2(("%s: LUN#%d asserting IRQ (drive select change)\n", __FUNCTION__, pCtl->aIfs[pCtl->iSelectedIf].iLUN));
4350 Log2(("%s: LUN#%d deasserting IRQ (drive select change)\n", __FUNCTION__, pCtl->aIfs[pCtl->iSelectedIf].iLUN));
4362 if (pCtl->iSelectedIf && !pCtl->aIfs[pCtl->iSelectedIf].pDrvBlock)
4368 ataParseCmd(&pCtl->aIfs[pCtl->iSelectedIf], val);
4377 ATADevState *s = &pCtl->aIfs[pCtl->iSelectedIf];
4386 if (!pCtl->aIfs[0].pDrvBlock) /* @todo: this case should never get here! */
4391 if (((addr & 7) != 1) && pCtl->aIfs[0].fATAPI) {
4393 s->iLUN, pCtl->aIfs[0].iLUN));
4450 if (!pCtl->aIfs[0].pDrvBlock && !pCtl->aIfs[1].pDrvBlock)
4541 ATADevState *s = &pCtl->aIfs[pCtl->iSelectedIf];
4546 if (!pCtl->aIfs[0].pDrvBlock && !pCtl->aIfs[1].pDrvBlock)
4559 if ((val ^ pCtl->aIfs[0].uATARegDevCtl) & ATA_DEVCTL_RESET)
4565 if (!(pCtl->aIfs[0].uATARegDevCtl & ATA_DEVCTL_RESET) &&
4572 if (pCtl->aIfs[0].u64CmdTS)
4573 uCmdWait0 = (uNow - pCtl->aIfs[0].u64CmdTS) / 1000;
4574 if (pCtl->aIfs[1].u64CmdTS)
4575 uCmdWait1 = (uNow - pCtl->aIfs[1].u64CmdTS) / 1000;
4578 pCtl->aIfs[0].uATARegCommand, uCmdWait0,
4579 pCtl->aIfs[1].uATARegCommand, uCmdWait1));
4585 for (uint32_t i = 0; i < RT_ELEMENTS(pCtl->aIfs); i++)
4587 ataResetDevice(&pCtl->aIfs[i]);
4590 pCtl->aIfs[i].uATARegStatus = ATA_STAT_BUSY | ATA_STAT_SEEK;
4591 Log2(("%s: LUN#%d status %#04x\n", __FUNCTION__, pCtl->aIfs[i].iLUN, pCtl->aIfs[i].uATARegStatus));
4592 pCtl->aIfs[i].uATARegError = 0x01;
4611 else if ((pCtl->aIfs[0].uATARegDevCtl & ATA_DEVCTL_RESET) &&
4631 if ((val ^ pCtl->aIfs[0].uATARegDevCtl) & ATA_DEVCTL_DISABLE_IRQ
4632 && pCtl->aIfs[pCtl->iSelectedIf].fIrqPending)
4636 Log2(("%s: LUN#%d asserting IRQ (interrupt disable change)\n", __FUNCTION__, pCtl->aIfs[pCtl->iSelectedIf].iLUN));
4648 Log2(("%s: LUN#%d deasserting IRQ (interrupt disable change)\n", __FUNCTION__, pCtl->aIfs[pCtl->iSelectedIf].iLUN));
4659 pCtl->aIfs[0].uATARegDevCtl = val;
4660 pCtl->aIfs[1].uATARegDevCtl = val;
4671 s = &pCtl->aIfs[pCtl->iAIOIf];
4773 ATADevState *s = &pCtl->aIfs[pCtl->iSelectedIf];
4805 ATADevState *s = &pCtl->aIfs[pCtl->iSelectedIf];
4859 ATADevState *s = &pCtl->aIfs[pCtl->iAIOIf];
5147 s = &pCtl->aIfs[pCtl->iAIOIf];
5290 s = &pCtl->aIfs[pCtl->iAIOIf]; /* Do not remove or there's an instant crash after loading the saved state */
5344 s = &pCtl->aIfs[pCtl->iAIOIf]; /* Do not remove or there's an instant crash after loading the saved state */
5416 ataPIOTransferStop(&pCtl->aIfs[0]);
5417 ataPIOTransferStop(&pCtl->aIfs[1]);
5432 for (uint32_t i = 0; i < RT_ELEMENTS(pCtl->aIfs); i++)
5434 if (pCtl->aIfs[i].fATAPI)
5435 ataSetStatusValue(&pCtl->aIfs[i], 0); /* NOTE: READY is _not_ set */
5437 ataSetStatusValue(&pCtl->aIfs[i], ATA_STAT_READY | ATA_STAT_SEEK);
5438 ataSetSignature(&pCtl->aIfs[i]);
5446 s = &pCtl->aIfs[pReq->u.a.iIf];
5483 Log(("%s: Ctl#%d: LUN#%d finished I/O transaction in %d microseconds\n", __FUNCTION__, ATACONTROLLER_IDX(pCtl), pCtl->aIfs[pCtl->iAIOIf].iLUN, (uint32_t)(uWait)));
5485 pCtl->aIfs[pCtl->iAIOIf].u64CmdTS = 0;
5492 if (pCtl->aIfs[pCtl->iAIOIf].uATARegCommand != ATA_PACKET)
5502 LogRel(("PIIX3 ATA: execution time for ATA command %#04x was %d seconds\n", pCtl->aIfs[pCtl->iAIOIf].uATARegCommand, uWait / (1000 * 1000)));
5515 LogRel(("PIIX3 ATA: execution time for ATAPI command %#04x was %d seconds\n", pCtl->aIfs[pCtl->iAIOIf].aATAPICmd[0], uWait / (1000 * 1000)));
5583 if ( !pCtl->aIfs[pCtl->iSelectedIf].fDMA
5587 if (pCtl->aIfs[pCtl->iAIOIf].uATARegStatus & ATA_STAT_DRQ)
5793 case 0: *ppLed = &pThis->aCts[0].aIfs[0].Led; break;
5794 case 1: *ppLed = &pThis->aCts[0].aIfs[1].Led; break;
5795 case 2: *ppLed = &pThis->aCts[1].aIfs[0].Led; break;
5796 case 3: *ppLed = &pThis->aCts[1].aIfs[1].Led; break;
5952 ATADevState *s = &pCtl->aIfs[pCtl->iSelectedIf];
6020 ATADevState *s = &pCtl->aIfs[pCtl->iSelectedIf];
6149 iController = iLUN / RT_ELEMENTS(pThis->aCts[0].aIfs);
6153 iInterface = iLUN % RT_ELEMENTS(pThis->aCts[0].aIfs);
6154 pIf = &pCtl->aIfs[iInterface];
6336 iController = iLUN / RT_ELEMENTS(pThis->aCts[0].aIfs);
6340 iInterface = iLUN % RT_ELEMENTS(pThis->aCts[0].aIfs);
6341 pIf = &pCtl->aIfs[iInterface];
6426 pThis->aCts[i].aIfs[0].uATARegCommand, pThis->aCts[i].aIfs[1].uATARegCommand));
6466 for (uint32_t j = 0; j < RT_ELEMENTS(pThis->aCts[i].aIfs); j++)
6468 SSMR3PutBool(pSSM, pThis->aCts[i].aIfs[j].pDrvBase != NULL);
6469 SSMR3PutStrZ(pSSM, pThis->aCts[i].aIfs[j].szSerialNumber);
6470 SSMR3PutStrZ(pSSM, pThis->aCts[i].aIfs[j].szFirmwareRevision);
6471 SSMR3PutStrZ(pSSM, pThis->aCts[i].aIfs[j].szModelNumber);
6503 for (uint32_t j = 0; j < RT_ELEMENTS(pThis->aCts[i].aIfs); j++)
6505 SSMR3PutBool(pSSM, pThis->aCts[i].aIfs[j].fLBA48);
6506 SSMR3PutBool(pSSM, pThis->aCts[i].aIfs[j].fATAPI);
6507 SSMR3PutBool(pSSM, pThis->aCts[i].aIfs[j].fIrqPending);
6508 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].cMultSectors);
6509 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].PCHSGeometry.cCylinders);
6510 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].PCHSGeometry.cHeads);
6511 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].PCHSGeometry.cSectors);
6512 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].cSectorsPerIRQ);
6513 SSMR3PutU64(pSSM, pThis->aCts[i].aIfs[j].cTotalSectors);
6514 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegFeature);
6515 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegFeatureHOB);
6516 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegError);
6517 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegNSector);
6518 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegNSectorHOB);
6519 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegSector);
6520 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegSectorHOB);
6521 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegLCyl);
6522 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegLCylHOB);
6523 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegHCyl);
6524 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegHCylHOB);
6525 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegSelect);
6526 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegStatus);
6527 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegCommand);
6528 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATARegDevCtl);
6529 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uATATransferMode);
6530 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].uTxDir);
6531 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].iBeginTransfer);
6532 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].iSourceSink);
6533 SSMR3PutBool(pSSM, pThis->aCts[i].aIfs[j].fDMA);
6534 SSMR3PutBool(pSSM, pThis->aCts[i].aIfs[j].fATAPITransfer);
6535 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].cbTotalTransfer);
6536 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].cbElementaryTransfer);
6537 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].iIOBufferCur);
6538 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].iIOBufferEnd);
6539 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].iIOBufferPIODataStart);
6540 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].iIOBufferPIODataEnd);
6541 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].iATAPILBA);
6542 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].cbATAPISector);
6543 SSMR3PutMem(pSSM, &pThis->aCts[i].aIfs[j].aATAPICmd, sizeof(pThis->aCts[i].aIfs[j].aATAPICmd));
6544 SSMR3PutMem(pSSM, &pThis->aCts[i].aIfs[j].abATAPISense, sizeof(pThis->aCts[i].aIfs[j].abATAPISense));
6545 SSMR3PutU8(pSSM, pThis->aCts[i].aIfs[j].cNotifiedMediaChange);
6546 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].MediaEventStatus);
6547 SSMR3PutMem(pSSM, &pThis->aCts[i].aIfs[j].Led, sizeof(pThis->aCts[i].aIfs[j].Led));
6548 SSMR3PutU32(pSSM, pThis->aCts[i].aIfs[j].cbIOBuffer);
6549 if (pThis->aCts[i].aIfs[j].cbIOBuffer)
6550 SSMR3PutMem(pSSM, pThis->aCts[i].aIfs[j].CTX_SUFF(pbIOBuffer), pThis->aCts[i].aIfs[j].cbIOBuffer);
6552 Assert(pThis->aCts[i].aIfs[j].CTX_SUFF(pbIOBuffer) == NULL);
6612 for (uint32_t j = 0; j < RT_ELEMENTS(pThis->aCts[i].aIfs); j++)
6614 ATADevState const *pIf = &pThis->aCts[i].aIfs[j];
6676 for (uint32_t j = 0; j < RT_ELEMENTS(pThis->aCts[i].aIfs); j++)
6678 SSMR3GetBool(pSSM, &pThis->aCts[i].aIfs[j].fLBA48);
6679 SSMR3GetBool(pSSM, &pThis->aCts[i].aIfs[j].fATAPI);
6680 SSMR3GetBool(pSSM, &pThis->aCts[i].aIfs[j].fIrqPending);
6681 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].cMultSectors);
6682 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].PCHSGeometry.cCylinders);
6683 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].PCHSGeometry.cHeads);
6684 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].PCHSGeometry.cSectors);
6685 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].cSectorsPerIRQ);
6686 SSMR3GetU64(pSSM, &pThis->aCts[i].aIfs[j].cTotalSectors);
6687 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegFeature);
6688 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegFeatureHOB);
6689 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegError);
6690 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegNSector);
6691 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegNSectorHOB);
6692 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegSector);
6693 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegSectorHOB);
6694 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegLCyl);
6695 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegLCylHOB);
6696 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegHCyl);
6697 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegHCylHOB);
6698 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegSelect);
6699 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegStatus);
6700 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegCommand);
6701 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATARegDevCtl);
6702 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uATATransferMode);
6703 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].uTxDir);
6704 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].iBeginTransfer);
6705 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].iSourceSink);
6706 SSMR3GetBool(pSSM, &pThis->aCts[i].aIfs[j].fDMA);
6707 SSMR3GetBool(pSSM, &pThis->aCts[i].aIfs[j].fATAPITransfer);
6708 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].cbTotalTransfer);
6709 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].cbElementaryTransfer);
6715 pThis->aCts[i].aIfs[j].cbPIOTransferLimit = (pThis->aCts[i].aIfs[j].uATARegHCyl << 8) | pThis->aCts[i].aIfs[j].uATARegLCyl;
6716 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].iIOBufferCur);
6717 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].iIOBufferEnd);
6718 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].iIOBufferPIODataStart);
6719 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].iIOBufferPIODataEnd);
6720 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].iATAPILBA);
6721 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].cbATAPISector);
6722 SSMR3GetMem(pSSM, &pThis->aCts[i].aIfs[j].aATAPICmd, sizeof(pThis->aCts[i].aIfs[j].aATAPICmd));
6725 SSMR3GetMem(pSSM, pThis->aCts[i].aIfs[j].abATAPISense, sizeof(pThis->aCts[i].aIfs[j].abATAPISense));
6730 memset(pThis->aCts[i].aIfs[j].abATAPISense, '\0', sizeof(pThis->aCts[i].aIfs[j].abATAPISense));
6731 pThis->aCts[i].aIfs[j].abATAPISense[0] = 0x70 | (1 << 7);
6732 pThis->aCts[i].aIfs[j].abATAPISense[7] = 10;
6735 pThis->aCts[i].aIfs[j].abATAPISense[2] = uATAPISenseKey & 0x0f;
6736 pThis->aCts[i].aIfs[j].abATAPISense[12] = uATAPIASC;
6739 SSMR3GetU8(pSSM, &pThis->aCts[i].aIfs[j].cNotifiedMediaChange);
6741 SSMR3GetU32(pSSM, (uint32_t*)&pThis->aCts[i].aIfs[j].MediaEventStatus);
6743 pThis->aCts[i].aIfs[j].MediaEventStatus = ATA_EVENT_STATUS_UNCHANGED;
6744 SSMR3GetMem(pSSM, &pThis->aCts[i].aIfs[j].Led, sizeof(pThis->aCts[i].aIfs[j].Led));
6745 SSMR3GetU32(pSSM, &pThis->aCts[i].aIfs[j].cbIOBuffer);
6746 if (pThis->aCts[i].aIfs[j].cbIOBuffer)
6748 if (pThis->aCts[i].aIfs[j].CTX_SUFF(pbIOBuffer))
6749 SSMR3GetMem(pSSM, pThis->aCts[i].aIfs[j].CTX_SUFF(pbIOBuffer), pThis->aCts[i].aIfs[j].cbIOBuffer);
6758 size_t cbLeft = pThis->aCts[i].aIfs[j].cbIOBuffer;
6764 Assert(pThis->aCts[i].aIfs[j].CTX_SUFF(pbIOBuffer) == NULL);
6848 for (uint32_t j = 0; j < RT_ELEMENTS(pThis->aCts[i].aIfs); j++)
6849 ataResetDevice(&pThis->aCts[i].aIfs[j]);
6877 pThis->aCts[i].BmDma.u8Status = (pThis->aCts[i].aIfs[0].pDrvBase != NULL ? BM_STATUS_D0DMA : 0)
6878 | (pThis->aCts[i].aIfs[1].pDrvBase != NULL ? BM_STATUS_D1DMA : 0);
6968 pThis->aCts[i].aIfs[0].pDevInsRC += offDelta;
6969 pThis->aCts[i].aIfs[0].pControllerRC += offDelta;
6970 ataRelocBuffer(pDevIns, &pThis->aCts[i].aIfs[0]);
6971 pThis->aCts[i].aIfs[1].pDevInsRC += offDelta;
6972 pThis->aCts[i].aIfs[1].pControllerRC += offDelta;
6973 ataRelocBuffer(pDevIns, &pThis->aCts[i].aIfs[1]);
7021 pThis->aCts[i].aIfs[0].uATARegCommand, pThis->aCts[i].aIfs[1].uATARegCommand, rc));
7057 for (uint32_t iIf = 0; iIf < RT_ELEMENTS(pThis->aCts[i].aIfs); iIf++)
7059 if (pThis->aCts[i].aIfs[iIf].pTrackList)
7061 ATAPIPassthroughTrackListDestroy(pThis->aCts[i].aIfs[iIf].pTrackList);
7062 pThis->aCts[i].aIfs[iIf].pTrackList = NULL;
7229 for (uint32_t j = 0; j < RT_ELEMENTS(pThis->aCts[i].aIfs); j++)
7231 ATADevState *pIf = &pThis->aCts[i].aIfs[j];
7329 for (uint32_t j = 0; j < RT_ELEMENTS(pThis->aCts[i].aIfs); j++)
7331 ATADevState *pIf = &pThis->aCts[i].aIfs[j];
7423 for (uint32_t j = 0; j < RT_ELEMENTS(pCtl->aIfs); j++)
7425 static const char *s_apszDescs[RT_ELEMENTS(pThis->aCts)][RT_ELEMENTS(pCtl->aIfs)] =
7435 ATADevState *pIf = &pCtl->aIfs[j];
7446 static const char *s_apszCFGMKeys[RT_ELEMENTS(pThis->aCts)][RT_ELEMENTS(pCtl->aIfs)] =