vbox的更動 11159 路徑 trunk/src/VBox/Devices/Storage
- 時間撮記:
- 2008-8-5 下午11:23:18 (16 年 以前)
- 位置:
- trunk/src/VBox/Devices/Storage
- 檔案:
-
- 修改 2 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/Devices/Storage/ATAController.h
r11144 r11159 166 166 R0PTRTYPE(uint8_t *) pbIOBufferR0; 167 167 /** Pointer to the I/O buffer. */ 168 RCPTRTYPE(uint8_t *) pbIOBuffer GC;168 RCPTRTYPE(uint8_t *) pbIOBufferRC; 169 169 #if 1 /*HC_ARCH_BITS == 64*/ 170 170 RTRCPTR Aligmnent0; /**< Align the statistics at an 8-byte boundrary. */ … … 238 238 R0PTRTYPE(struct ATACONTROLLER *) pControllerR0; 239 239 /** Pointer to device instance. */ 240 PPDMDEVINS GC pDevInsGC;240 PPDMDEVINSRC pDevInsRC; 241 241 /** Pointer to controller instance. */ 242 RCPTRTYPE(struct ATACONTROLLER *) pController GC;242 RCPTRTYPE(struct ATACONTROLLER *) pControllerRC; 243 243 } ATADevState; 244 244 … … 335 335 PPDMDEVINSR0 pDevInsR0; 336 336 /** Pointer to device instance. */ 337 PPDMDEVINS GC pDevInsGC;337 PPDMDEVINSRC pDevInsRC; 338 338 339 339 /** Set when the destroying the device instance and the thread must exit. */ … … 371 371 #ifndef VBOX_DEVICE_STRUCT_TESTCASE 372 372 373 #define ATADEVSTATE_2_CONTROLLER(pIf) ( (pIf)->CTX ALLSUFF(pController) )374 #define ATADEVSTATE_2_DEVINS(pIf) ( (pIf)->CTX ALLSUFF(pDevIns) )375 #define CONTROLLER_2_DEVINS(pController) ( (pController)->CTX ALLSUFF(pDevIns) )373 #define ATADEVSTATE_2_CONTROLLER(pIf) ( (pIf)->CTX_SUFF(pController) ) 374 #define ATADEVSTATE_2_DEVINS(pIf) ( (pIf)->CTX_SUFF(pDevIns) ) 375 #define CONTROLLER_2_DEVINS(pController) ( (pController)->CTX_SUFF(pDevIns) ) 376 376 #define PDMIBASE_2_ATASTATE(pInterface) ( (ATADevState *)((uintptr_t)(pInterface) - RT_OFFSETOF(ATADevState, IBase)) ) 377 377 -
trunk/src/VBox/Devices/Storage/DevATA.cpp
r11151 r11159 754 754 RTStrPrintf(aSerial, sizeof(aSerial), "VB%08x-%08x", Uuid.au32[0], Uuid.au32[3]); 755 755 756 p = (uint16_t *)s->CTX ALLSUFF(pbIOBuffer);756 p = (uint16_t *)s->CTX_SUFF(pbIOBuffer); 757 757 memset(p, 0, 512); 758 758 p[0] = RT_H2LE_U16(0x0040); … … 878 878 RTStrPrintf(aSerial, sizeof(aSerial), "VB%08x-%08x", Uuid.au32[0], Uuid.au32[3]); 879 879 880 p = (uint16_t *)s->CTX ALLSUFF(pbIOBuffer);880 p = (uint16_t *)s->CTX_SUFF(pbIOBuffer); 881 881 memset(p, 0, 512); 882 882 /* Removable CDROM, 50us response, 12 byte packets */ … … 1121 1121 iLBA = ataGetSector(s); 1122 1122 Log(("%s: %d sectors at LBA %d\n", __FUNCTION__, cSectors, iLBA)); 1123 rc = ataReadSectors(s, iLBA, s->CTX ALLSUFF(pbIOBuffer), cSectors);1123 rc = ataReadSectors(s, iLBA, s->CTX_SUFF(pbIOBuffer), cSectors); 1124 1124 if (VBOX_SUCCESS(rc)) 1125 1125 { … … 1168 1168 iLBA = ataGetSector(s); 1169 1169 Log(("%s: %d sectors at LBA %d\n", __FUNCTION__, cSectors, iLBA)); 1170 rc = ataWriteSectors(s, iLBA, s->CTX ALLSUFF(pbIOBuffer), cSectors);1170 rc = ataWriteSectors(s, iLBA, s->CTX_SUFF(pbIOBuffer), cSectors); 1171 1171 if (VBOX_SUCCESS(rc)) 1172 1172 { … … 1343 1343 { 1344 1344 case 2048: 1345 rc = s->pDrvBlock->pfnRead(s->pDrvBlock, (uint64_t)s->iATAPILBA * s->cbATAPISector, s->CTX ALLSUFF(pbIOBuffer), s->cbATAPISector * cSectors);1345 rc = s->pDrvBlock->pfnRead(s->pDrvBlock, (uint64_t)s->iATAPILBA * s->cbATAPISector, s->CTX_SUFF(pbIOBuffer), s->cbATAPISector * cSectors); 1346 1346 break; 1347 1347 case 2352: 1348 1348 { 1349 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1349 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1350 1350 1351 1351 for (uint32_t i = s->iATAPILBA; i < s->iATAPILBA + cSectors; i++) … … 1414 1414 1415 1415 if (s->uTxDir == PDMBLOCKTXDIR_TO_DEVICE) 1416 Log3(("ATAPI PT data write (%d): %.*Vhxs\n", cbTransfer, cbTransfer, s->CTX ALLSUFF(pbIOBuffer)));1416 Log3(("ATAPI PT data write (%d): %.*Vhxs\n", cbTransfer, cbTransfer, s->CTX_SUFF(pbIOBuffer))); 1417 1417 1418 1418 /* Simple heuristics: if there is at least one sector of data … … 1443 1443 uint32_t iATAPILBA, cSectors, cReqSectors; 1444 1444 size_t cbCurrTX; 1445 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1445 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1446 1446 1447 1447 switch (s->aATAPICmd[0]) … … 1517 1517 } 1518 1518 else 1519 rc = s->pDrvBlock->pfnSendCmd(s->pDrvBlock, s->aATAPICmd, (PDMBLOCKTXDIR)s->uTxDir, s->CTX ALLSUFF(pbIOBuffer), &cbTransfer, &uATAPISenseKey, 30000 /**< @todo timeout */);1519 rc = s->pDrvBlock->pfnSendCmd(s->pDrvBlock, s->aATAPICmd, (PDMBLOCKTXDIR)s->uTxDir, s->CTX_SUFF(pbIOBuffer), &cbTransfer, &uATAPISenseKey, 30000 /**< @todo timeout */); 1520 1520 if (pProf) { STAM_PROFILE_ADV_STOP(pProf, b); } 1521 1521 … … 1555 1555 * Motivation: changing the VM configuration should be as 1556 1556 * invisible as possible to the guest. */ 1557 Log3(("ATAPI PT inquiry data before (%d): %.*Vhxs\n", cbTransfer, cbTransfer, s->CTX ALLSUFF(pbIOBuffer)));1558 ataSCSIPadStr(s->CTX ALLSUFF(pbIOBuffer) + 8, "VBOX", 8);1559 ataSCSIPadStr(s->CTX ALLSUFF(pbIOBuffer) + 16, "CD-ROM", 16);1560 ataSCSIPadStr(s->CTX ALLSUFF(pbIOBuffer) + 32, "1.0", 4);1557 Log3(("ATAPI PT inquiry data before (%d): %.*Vhxs\n", cbTransfer, cbTransfer, s->CTX_SUFF(pbIOBuffer))); 1558 ataSCSIPadStr(s->CTX_SUFF(pbIOBuffer) + 8, "VBOX", 8); 1559 ataSCSIPadStr(s->CTX_SUFF(pbIOBuffer) + 16, "CD-ROM", 16); 1560 ataSCSIPadStr(s->CTX_SUFF(pbIOBuffer) + 32, "1.0", 4); 1561 1561 } 1562 1562 if (cbTransfer) 1563 Log3(("ATAPI PT data read (%d): %.*Vhxs\n", cbTransfer, cbTransfer, s->CTX ALLSUFF(pbIOBuffer)));1563 Log3(("ATAPI PT data read (%d): %.*Vhxs\n", cbTransfer, cbTransfer, s->CTX_SUFF(pbIOBuffer))); 1564 1564 } 1565 1565 s->iSourceSink = ATAFN_SS_NULL; … … 1607 1607 static bool atapiReadCapacitySS(ATADevState *s) 1608 1608 { 1609 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1609 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1610 1610 1611 1611 Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); … … 1621 1621 static bool atapiReadDiscInformationSS(ATADevState *s) 1622 1622 { 1623 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1623 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1624 1624 1625 1625 Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); … … 1647 1647 static bool atapiReadTrackInformationSS(ATADevState *s) 1648 1648 { 1649 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1649 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1650 1650 1651 1651 Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); … … 1676 1676 static bool atapiGetConfigurationSS(ATADevState *s) 1677 1677 { 1678 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1678 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1679 1679 1680 1680 Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); … … 1711 1711 static bool atapiInquirySS(ATADevState *s) 1712 1712 { 1713 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1713 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1714 1714 1715 1715 Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); … … 1739 1739 static bool atapiModeSenseErrorRecoverySS(ATADevState *s) 1740 1740 { 1741 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1741 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1742 1742 1743 1743 Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); … … 1767 1767 static bool atapiModeSenseCDStatusSS(ATADevState *s) 1768 1768 { 1769 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1769 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1770 1770 1771 1771 Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); … … 1815 1815 static bool atapiRequestSenseSS(ATADevState *s) 1816 1816 { 1817 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1817 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1818 1818 1819 1819 Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); … … 1832 1832 static bool atapiMechanismStatusSS(ATADevState *s) 1833 1833 { 1834 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1834 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1835 1835 1836 1836 Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); … … 1851 1851 static bool atapiReadTOCNormalSS(ATADevState *s) 1852 1852 { 1853 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer), *q, iStartTrack;1853 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer), *q, iStartTrack; 1854 1854 bool fMSF; 1855 1855 uint32_t cbSize; … … 1913 1913 static bool atapiReadTOCMultiSS(ATADevState *s) 1914 1914 { 1915 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer);1915 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer); 1916 1916 bool fMSF; 1917 1917 … … 1945 1945 static bool atapiReadTOCRawSS(ATADevState *s) 1946 1946 { 1947 uint8_t *pbBuf = s->CTX ALLSUFF(pbIOBuffer), *q, iStartTrack;1947 uint8_t *pbBuf = s->CTX_SUFF(pbIOBuffer), *q, iStartTrack; 1948 1948 bool fMSF; 1949 1949 uint32_t cbSize; … … 2037 2037 2038 2038 pbPacket = s->aATAPICmd; 2039 pbBuf = s->CTX ALLSUFF(pbIOBuffer);2039 pbBuf = s->CTX_SUFF(pbIOBuffer); 2040 2040 switch (pbPacket[0]) 2041 2041 { … … 2390 2390 2391 2391 pbPacket = s->aATAPICmd; 2392 pbBuf = s->CTX ALLSUFF(pbIOBuffer);2392 pbBuf = s->CTX_SUFF(pbIOBuffer); 2393 2393 switch (pbPacket[0]) 2394 2394 { … … 2679 2679 { 2680 2680 s->fDMA = !!(s->uATARegFeature & 1); 2681 memcpy(s->aATAPICmd, s->CTX ALLSUFF(pbIOBuffer), ATAPI_PACKET_SIZE);2681 memcpy(s->aATAPICmd, s->CTX_SUFF(pbIOBuffer), ATAPI_PACKET_SIZE); 2682 2682 s->uTxDir = PDMBLOCKTXDIR_NONE; 2683 2683 s->cbTotalTransfer = 0; … … 3518 3518 { 3519 3519 Assert(s->uTxDir == PDMBLOCKTXDIR_TO_DEVICE); 3520 p = s->CTX ALLSUFF(pbIOBuffer) + s->iIOBufferPIODataStart;3520 p = s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart; 3521 3521 #ifndef IN_RING3 3522 3522 /* All but the last transfer unit is simple enough for GC, but … … 3550 3550 { 3551 3551 Assert(s->uTxDir == PDMBLOCKTXDIR_FROM_DEVICE); 3552 p = s->CTX ALLSUFF(pbIOBuffer) + s->iIOBufferPIODataStart;3552 p = s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart; 3553 3553 #ifndef IN_RING3 3554 3554 /* All but the last transfer unit is simple enough for GC, but … … 3660 3660 (int)pDesc, pBuffer, cbBuffer)); 3661 3661 if (uTxDir == PDMBLOCKTXDIR_FROM_DEVICE) 3662 PDMDevHlpPhysWrite(pDevIns, pBuffer, s->CTX ALLSUFF(pbIOBuffer) + iIOBufferCur, dmalen);3662 PDMDevHlpPhysWrite(pDevIns, pBuffer, s->CTX_SUFF(pbIOBuffer) + iIOBufferCur, dmalen); 3663 3663 else 3664 PDMDevHlpPhysRead(pDevIns, pBuffer, s->CTX ALLSUFF(pbIOBuffer) + iIOBufferCur, dmalen);3664 PDMDevHlpPhysRead(pDevIns, pBuffer, s->CTX_SUFF(pbIOBuffer) + iIOBufferCur, dmalen); 3665 3665 iIOBufferCur += dmalen; 3666 3666 cbTotalTransfer -= dmalen; … … 4716 4716 #ifdef IN_GC 4717 4717 for (uint32_t i = 0; i < cbTransfer; i += cb) 4718 MMGCRamWriteNoTrapHandler((char *)GCDst + i, s->CTX ALLSUFF(pbIOBuffer) + s->iIOBufferPIODataStart + i, cb);4718 MMGCRamWriteNoTrapHandler((char *)GCDst + i, s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart + i, cb); 4719 4719 #else /* !IN_GC */ 4720 rc = PGMPhysWriteGCPtrDirty(PDMDevHlpGetVM(pDevIns), GCDst, s->CTX ALLSUFF(pbIOBuffer) + s->iIOBufferPIODataStart, cbTransfer);4720 rc = PGMPhysWriteGCPtrDirty(PDMDevHlpGetVM(pDevIns), GCDst, s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart, cbTransfer); 4721 4721 Assert(rc == VINF_SUCCESS); 4722 4722 #endif /* IN_GC */ 4723 4723 4724 4724 if (cbTransfer) 4725 Log3(("%s: addr=%#x val=%.*Vhxs\n", __FUNCTION__, Port, cbTransfer, s->CTX ALLSUFF(pbIOBuffer) + s->iIOBufferPIODataStart));4725 Log3(("%s: addr=%#x val=%.*Vhxs\n", __FUNCTION__, Port, cbTransfer, s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart)); 4726 4726 s->iIOBufferPIODataStart += cbTransfer; 4727 4727 *pGCPtrDst = (RTGCPTR)((RTGCUINTPTR)GCDst + cbTransfer); … … 4773 4773 #ifdef IN_GC 4774 4774 for (uint32_t i = 0; i < cbTransfer; i += cb) 4775 MMGCRamReadNoTrapHandler(s->CTX ALLSUFF(pbIOBuffer) + s->iIOBufferPIODataStart + i, (char *)GCSrc + i, cb);4775 MMGCRamReadNoTrapHandler(s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart + i, (char *)GCSrc + i, cb); 4776 4776 #else /* !IN_GC */ 4777 rc = PGMPhysReadGCPtr(PDMDevHlpGetVM(pDevIns), s->CTX ALLSUFF(pbIOBuffer) + s->iIOBufferPIODataStart, GCSrc, cbTransfer);4777 rc = PGMPhysReadGCPtr(PDMDevHlpGetVM(pDevIns), s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart, GCSrc, cbTransfer); 4778 4778 Assert(rc == VINF_SUCCESS); 4779 4779 #endif /* IN_GC */ 4780 4780 4781 4781 if (cbTransfer) 4782 Log3(("%s: addr=%#x val=%.*Vhxs\n", __FUNCTION__, Port, cbTransfer, s->CTX ALLSUFF(pbIOBuffer) + s->iIOBufferPIODataStart));4782 Log3(("%s: addr=%#x val=%.*Vhxs\n", __FUNCTION__, Port, cbTransfer, s->CTX_SUFF(pbIOBuffer) + s->iIOBufferPIODataStart)); 4783 4783 s->iIOBufferPIODataStart += cbTransfer; 4784 4784 *pGCPtrSrc = (RTGCPTR)((RTGCUINTPTR)GCSrc + cbTransfer); … … 4909 4909 { 4910 4910 if (s->pbIOBufferR3) 4911 s->pbIOBuffer GC = MMHyperR3ToRC(PDMDevHlpGetVM(pDevIns), s->pbIOBufferR3);4911 s->pbIOBufferRC = MMHyperR3ToRC(PDMDevHlpGetVM(pDevIns), s->pbIOBufferR3); 4912 4912 } 4913 4913 … … 4922 4922 for (uint32_t i = 0; i < RT_ELEMENTS(pData->aCts); i++) 4923 4923 { 4924 pData->aCts[i].pDevIns GC += offDelta;4925 pData->aCts[i].aIfs[0].pDevIns GC += offDelta;4926 pData->aCts[i].aIfs[0].pController GC += offDelta;4924 pData->aCts[i].pDevInsRC += offDelta; 4925 pData->aCts[i].aIfs[0].pDevInsRC += offDelta; 4926 pData->aCts[i].aIfs[0].pControllerRC += offDelta; 4927 4927 ataRelocBuffer(pDevIns, &pData->aCts[i].aIfs[0]); 4928 pData->aCts[i].aIfs[1].pDevIns GC += offDelta;4929 pData->aCts[i].aIfs[1].pController GC += offDelta;4928 pData->aCts[i].aIfs[1].pDevInsRC += offDelta; 4929 pData->aCts[i].aIfs[1].pControllerRC += offDelta; 4930 4930 ataRelocBuffer(pDevIns, &pData->aCts[i].aIfs[1]); 4931 4931 } … … 5093 5093 Assert(pIf->pbIOBufferR3); 5094 5094 Assert(pIf->pbIOBufferR0 == MMHyperR3ToR0(pVM, pIf->pbIOBufferR3)); 5095 Assert(pIf->pbIOBuffer GC == MMHyperR3ToRC(pVM, pIf->pbIOBufferR3));5095 Assert(pIf->pbIOBufferRC == MMHyperR3ToRC(pVM, pIf->pbIOBufferR3)); 5096 5096 } 5097 5097 else … … 5106 5106 return VERR_NO_MEMORY; 5107 5107 pIf->pbIOBufferR0 = MMHyperR3ToR0(pVM, pIf->pbIOBufferR3); 5108 pIf->pbIOBuffer GC = MMHyperR3ToRC(pVM, pIf->pbIOBufferR3);5108 pIf->pbIOBufferRC = MMHyperR3ToRC(pVM, pIf->pbIOBufferR3); 5109 5109 } 5110 5110 … … 5360 5360 SSMR3PutU32(pSSMHandle, pData->aCts[i].aIfs[j].cbIOBuffer); 5361 5361 if (pData->aCts[i].aIfs[j].cbIOBuffer) 5362 SSMR3PutMem(pSSMHandle, pData->aCts[i].aIfs[j].CTX ALLSUFF(pbIOBuffer), pData->aCts[i].aIfs[j].cbIOBuffer);5362 SSMR3PutMem(pSSMHandle, pData->aCts[i].aIfs[j].CTX_SUFF(pbIOBuffer), pData->aCts[i].aIfs[j].cbIOBuffer); 5363 5363 else 5364 Assert(pData->aCts[i].aIfs[j].CTX ALLSUFF(pbIOBuffer) == NULL);5364 Assert(pData->aCts[i].aIfs[j].CTX_SUFF(pbIOBuffer) == NULL); 5365 5365 } 5366 5366 } … … 5466 5466 if (pData->aCts[i].aIfs[j].cbIOBuffer) 5467 5467 { 5468 if (pData->aCts[i].aIfs[j].CTX ALLSUFF(pbIOBuffer))5469 SSMR3GetMem(pSSMHandle, pData->aCts[i].aIfs[j].CTX ALLSUFF(pbIOBuffer), pData->aCts[i].aIfs[j].cbIOBuffer);5468 if (pData->aCts[i].aIfs[j].CTX_SUFF(pbIOBuffer)) 5469 SSMR3GetMem(pSSMHandle, pData->aCts[i].aIfs[j].CTX_SUFF(pbIOBuffer), pData->aCts[i].aIfs[j].cbIOBuffer); 5470 5470 else 5471 5471 { … … 5482 5482 } 5483 5483 else 5484 Assert(pData->aCts[i].aIfs[j].CTX ALLSUFF(pbIOBuffer) == NULL);5484 Assert(pData->aCts[i].aIfs[j].CTX_SUFF(pbIOBuffer) == NULL); 5485 5485 } 5486 5486 } … … 5602 5602 pData->aCts[i].pDevInsR3 = pDevIns; 5603 5603 pData->aCts[i].pDevInsR0 = PDMDEVINS_2_R0PTR(pDevIns); 5604 pData->aCts[i].pDevIns GC = PDMDEVINS_2_GCPTR(pDevIns);5604 pData->aCts[i].pDevInsRC = PDMDEVINS_2_GCPTR(pDevIns); 5605 5605 pData->aCts[i].DelayIRQMillies = (uint32_t)DelayIRQMillies; 5606 5606 for (uint32_t j = 0; j < RT_ELEMENTS(pData->aCts[i].aIfs); j++) … … 5609 5609 pData->aCts[i].aIfs[j].pDevInsR3 = pDevIns; 5610 5610 pData->aCts[i].aIfs[j].pDevInsR0 = PDMDEVINS_2_R0PTR(pDevIns); 5611 pData->aCts[i].aIfs[j].pDevIns GC = PDMDEVINS_2_GCPTR(pDevIns);5611 pData->aCts[i].aIfs[j].pDevInsRC = PDMDEVINS_2_GCPTR(pDevIns); 5612 5612 pData->aCts[i].aIfs[j].pControllerR3 = &pData->aCts[i]; 5613 5613 pData->aCts[i].aIfs[j].pControllerR0 = MMHyperR3ToR0(PDMDevHlpGetVM(pDevIns), &pData->aCts[i]); 5614 pData->aCts[i].aIfs[j].pController GC = MMHyperR3ToRC(PDMDevHlpGetVM(pDevIns), &pData->aCts[i]);5614 pData->aCts[i].aIfs[j].pControllerRC = MMHyperR3ToRC(PDMDevHlpGetVM(pDevIns), &pData->aCts[i]); 5615 5615 pData->aCts[i].aIfs[j].IBase.pfnQueryInterface = ataQueryInterface; 5616 5616 pData->aCts[i].aIfs[j].IMountNotify.pfnMountNotify = ataMountNotify; … … 5795 5795 pIf->pbIOBufferR3 = NULL; 5796 5796 pIf->pbIOBufferR0 = NIL_RTR0PTR; 5797 pIf->pbIOBuffer GC = NIL_RTGCPTR;5797 pIf->pbIOBufferRC = NIL_RTGCPTR; 5798 5798 LogRel(("PIIX3 ATA: LUN#%d: no unit\n", pIf->iLUN)); 5799 5799 }
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器