VirtualBox

Changeset 7060 in vbox


Ignore:
Timestamp:
Feb 20, 2008 6:49:47 PM (17 years ago)
Author:
vboxsync
Message:

Fix incorrect use of RTGCPHYS in DevATA. All this is 32bit only.

Location:
trunk/src/VBox/Devices/Storage
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/DevATA.cpp

    r7058 r7060  
    321321    /** The BusMaster DMA state. */
    322322    BMDMAState  BmDma;
    323     /** Pointer to first DMA descriptor. */
    324     RTGCPHYS    pFirstDMADesc;
    325     /** Pointer to last DMA descriptor. */
    326     RTGCPHYS    pLastDMADesc;
    327     /** Pointer to current DMA buffer (for redo operations). */
    328     RTGCPHYS    pRedoDMABuffer;
     323    /** (32 bit) GC phys pointer to first DMA descriptor. */
     324    uint32_t    pFirstDMADesc;
     325    /** (32 bit) GC phys pointer to last DMA descriptor. */
     326    uint32_t    pLastDMADesc;
     327    /** (32 bit) GC phys pointer to current DMA buffer (for redo operations). */
     328    uint32_t    pRedoDMABuffer;
    329329    /** Size of current DMA buffer (for redo operations). */
    330330    uint32_t    cbRedoDMABuffer;
    331     /** Alignmnet padding. */
    332     uint32_t    u32Alignment0;
    333331
    334332    /** The ATA/ATAPI interfaces of this controller. */
     
    39113909    ATADevState *s = &pCtl->aIfs[pCtl->iAIOIf];
    39123910    bool fRedo;
    3913     RTGCPHYS pDesc;
     3911    uint32_t pDesc;
    39143912    uint32_t cbTotalTransfer, cbElementaryTransfer;
    39153913    uint32_t iIOBufferCur, iIOBufferEnd;
     
    39413939    {
    39423940        BMDMADesc DMADesc;
    3943         RTGCPHYS pBuffer;
     3941        uint32_t pBuffer;
    39443942        uint32_t cbBuffer;
    39453943
     
    39693967                dmalen = RT_MIN(cbBuffer, iIOBufferEnd - iIOBufferCur);
    39703968                Log2(("%s: DMA desc %#010x: addr=%#010x size=%#010x\n", __FUNCTION__,
    3971                        (int)pDesc, pBuffer, cbBuffer));
     3969                       pDesc, pBuffer, cbBuffer));
    39723970                if (uTxDir == PDMBLOCKTXDIR_FROM_DEVICE)
    39733971                    PDMDevHlpPhysWrite(pDevIns, pBuffer, s->CTXSUFF(pbIOBuffer) + iIOBufferCur, dmalen);
     
    56255623        SSMR3PutBool(pSSMHandle, pData->aCts[i].fRedoDMALastDesc);
    56265624        SSMR3PutMem(pSSMHandle, &pData->aCts[i].BmDma, sizeof(pData->aCts[i].BmDma));
    5627         SSMR3PutGCPhys(pSSMHandle, pData->aCts[i].pFirstDMADesc);
    5628         SSMR3PutGCPhys(pSSMHandle, pData->aCts[i].pLastDMADesc);
    5629         SSMR3PutGCPhys(pSSMHandle, pData->aCts[i].pRedoDMABuffer);
     5625        SSMR3PutU32(pSSMHandle, pData->aCts[i].pFirstDMADesc);
     5626        SSMR3PutU32(pSSMHandle, pData->aCts[i].pLastDMADesc);
     5627        SSMR3PutU32(pSSMHandle, pData->aCts[i].pRedoDMABuffer);
    56305628        SSMR3PutU32(pSSMHandle, pData->aCts[i].cbRedoDMABuffer);
    56315629
     
    57305728        SSMR3GetBool(pSSMHandle, (bool *)&pData->aCts[i].fRedoDMALastDesc);
    57315729        SSMR3GetMem(pSSMHandle, &pData->aCts[i].BmDma, sizeof(pData->aCts[i].BmDma));
    5732         SSMR3GetGCPhys(pSSMHandle, &pData->aCts[i].pFirstDMADesc);
    5733         SSMR3GetGCPhys(pSSMHandle, &pData->aCts[i].pLastDMADesc);
    5734         SSMR3GetGCPhys(pSSMHandle, &pData->aCts[i].pRedoDMABuffer);
     5730        SSMR3GetU32(pSSMHandle, &pData->aCts[i].pFirstDMADesc);
     5731        SSMR3GetU32(pSSMHandle, &pData->aCts[i].pLastDMADesc);
     5732        SSMR3GetU32(pSSMHandle, &pData->aCts[i].pRedoDMABuffer);
    57355733        SSMR3GetU32(pSSMHandle, &pData->aCts[i].cbRedoDMABuffer);
    57365734
     
    61086106                pIf->cbIOBuffer = 0;
    61096107                pIf->pbIOBufferHC = NULL;
    6110                 pIf->pbIOBufferGC = NIL_RTGCPHYS;
     6108                pIf->pbIOBufferGC = NIL_RTGCPTR;
    61116109                LogRel(("PIIX3 ATA: LUN#%d: no unit\n", pIf->iLUN));
    61126110            }
  • trunk/src/VBox/Devices/Storage/PIIX3ATABmDma.h

    r7043 r7060  
    5353typedef struct BMDMAState {
    5454    /** Address of the MMIO region in the guest's memory space. */
    55     RTGCPHYS pvAddr;
     55    uint32_t pvAddr;
    5656    /** Command register. */
    5757    uint8_t u8Cmd;
    5858    /** Status register. */
    5959    uint8_t u8Status;
    60     uint8_t au8Alignment[6]; /**< Alignment padding. */
    6160} BMDMAState;
    6261
     
    6564typedef struct BMDMADesc {
    6665    /** Address of the DMA source/target buffer. */
    67     RTGCPHYS pBuffer;
     66    uint32_t pBuffer;
    6867    /** Size of the DMA source/target buffer. */
    6968    uint32_t cbBuffer;
    70     uint32_t u32Alignment; /**< Alignment padding. */
    7169} BMDMADesc;
    7270
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette