VirtualBox

Changeset 62623 in vbox for trunk/src/VBox/Devices/Storage


Ignore:
Timestamp:
Jul 28, 2016 2:58:49 PM (9 years ago)
Author:
vboxsync
Message:

s/ahci/pAhci/

File:
1 edited

Legend:

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

    r62621 r62623  
    938938{
    939939    const char *pszName;
    940     int (*pfnRead )(PAHCI ahci, uint32_t iReg, uint32_t *pu32Value);
    941     int (*pfnWrite)(PAHCI ahci, uint32_t iReg, uint32_t u32Value);
     940    int (*pfnRead )(PAHCI pAhci, uint32_t iReg, uint32_t *pu32Value);
     941    int (*pfnWrite)(PAHCI pAhci, uint32_t iReg, uint32_t u32Value);
    942942} AHCIOPREG;
    943943
     
    948948{
    949949    const char *pszName;
    950     int (*pfnRead )(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value);
    951     int (*pfnWrite)(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value);
     950    int (*pfnRead )(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value);
     951    int (*pfnWrite)(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value);
    952952} AHCIPORTOPREG;
    953953
     
    11641164}
    11651165
    1166 static int PortCmdIssue_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    1167 {
    1168     uint32_t uCIValue;
    1169 
     1166static int PortCmdIssue_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1167{
     1168    RT_NOREF1(iReg);
    11701169    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
    11711170
    11721171    /* Update the CI register first. */
    1173     uCIValue = ASMAtomicXchgU32(&pAhciPort->u32TasksFinished, 0);
     1172    uint32_t uCIValue = ASMAtomicXchgU32(&pAhciPort->u32TasksFinished, 0);
    11741173    pAhciPort->regCI &= ~uCIValue;
    11751174
     
    11871186        /* Send a notification to R3 if u32TasksNew was 0 before our write. */
    11881187        if (ASMAtomicReadBool(&pAhciPort->fWrkThreadSleeping))
    1189             ahciIoThreadKick(ahci, pAhciPort);
     1188            ahciIoThreadKick(pAhci, pAhciPort);
    11901189    }
    11911190
     
    11951194}
    11961195
    1197 static int PortCmdIssue_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    1198 {
    1199     uint32_t uCIValue = 0;
    1200 
    1201     uCIValue = ASMAtomicXchgU32(&pAhciPort->u32TasksFinished, 0);
    1202 
     1196static int PortCmdIssue_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1197{
     1198    RT_NOREF1(iReg);
     1199
     1200    uint32_t uCIValue = ASMAtomicXchgU32(&pAhciPort->u32TasksFinished, 0);
    12031201    ahciLog(("%s: read regCI=%#010x uCIValue=%#010x\n", __FUNCTION__, pAhciPort->regCI, uCIValue));
    12041202
    12051203    pAhciPort->regCI &= ~uCIValue;
    1206 
    12071204    *pu32Value = pAhciPort->regCI;
    12081205
     
    12101207}
    12111208
    1212 static int PortSActive_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    1213 {
     1209static int PortSActive_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1210{
     1211    RT_NOREF1(iReg);
    12141212    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
    12151213
     
    12191217}
    12201218
    1221 static int PortSActive_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    1222 {
     1219static int PortSActive_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1220{
     1221    RT_NOREF1(iReg);
     1222
    12231223    uint32_t u32TasksFinished = ASMAtomicXchgU32(&pAhciPort->u32QueuedTasksFinished, 0);
    1224 
    12251224    pAhciPort->regSACT &= ~u32TasksFinished;
    12261225
     
    12331232}
    12341233
    1235 static int PortSError_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1234static int PortSError_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    12361235{
    12371236    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
     
    12541253}
    12551254
    1256 static int PortSError_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1255static int PortSError_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    12571256{
    12581257    ahciLog(("%s: read regSERR=%#010x\n", __FUNCTION__, pAhciPort->regSERR));
     
    12611260}
    12621261
    1263 static int PortSControl_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1262static int PortSControl_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    12641263{
    12651264    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
     
    12731272    {
    12741273        if (!ASMAtomicXchgBool(&pAhciPort->fPortReset, true))
    1275             LogRel(("AHCI#%u: Port %d reset\n", ahci->CTX_SUFF(pDevIns)->iInstance,
     1274            LogRel(("AHCI#%u: Port %d reset\n", pAhci->CTX_SUFF(pDevIns)->iInstance,
    12761275                    pAhciPort->iLUN));
    12771276
     
    12871286    {
    12881287        /* Do the port reset here, so the guest sees the new status immediately. */
    1289         if (ahci->fLegacyPortResetMethod)
     1288        if (pAhci->fLegacyPortResetMethod)
    12901289        {
    12911290            ahciPortResetFinish(pAhciPort);
     
    12981297
    12991298            /* Kick the thread to finish the reset. */
    1300             ahciIoThreadKick(ahci, pAhciPort);
     1299            ahciIoThreadKick(pAhci, pAhciPort);
    13011300        }
    13021301    }
     
    13081307}
    13091308
    1310 static int PortSControl_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1309static int PortSControl_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    13111310{
    13121311    ahciLog(("%s: read regSCTL=%#010x\n", __FUNCTION__, pAhciPort->regSCTL));
     
    13191318}
    13201319
    1321 static int PortSStatus_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1320static int PortSStatus_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    13221321{
    13231322    ahciLog(("%s: read regSSTS=%#010x\n", __FUNCTION__, pAhciPort->regSSTS));
     
    13301329}
    13311330
    1332 static int PortSignature_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1331static int PortSignature_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    13331332{
    13341333    ahciLog(("%s: read regSIG=%#010x\n", __FUNCTION__, pAhciPort->regSIG));
     
    13371336}
    13381337
    1339 static int PortTaskFileData_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1338static int PortTaskFileData_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    13401339{
    13411340    ahciLog(("%s: read regTFD=%#010x\n", __FUNCTION__, pAhciPort->regTFD));
     
    13501349 * Read from the port command register.
    13511350 */
    1352 static int PortCmd_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1351static int PortCmd_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    13531352{
    13541353    ahciLog(("%s: read regCMD=%#010x\n", __FUNCTION__, pAhciPort->regCMD | AHCI_PORT_CMD_CCS_SHIFT(pAhciPort->u32CurrentCommandSlot)));
     
    13721371 * This is the register where all the data transfer is started
    13731372 */
    1374 static int PortCmd_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1373static int PortCmd_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    13751374{
    13761375    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
     
    14181417                    ASMAtomicOrU32(&pAhciPort->u32TasksNew, pAhciPort->regCI);
    14191418#ifdef IN_RC
    1420                     PDEVPORTNOTIFIERQUEUEITEM pItem = (PDEVPORTNOTIFIERQUEUEITEM)PDMQueueAlloc(ahci->CTX_SUFF(pNotifierQueue));
     1419                    PDEVPORTNOTIFIERQUEUEITEM pItem = (PDEVPORTNOTIFIERQUEUEITEM)PDMQueueAlloc(pAhci->CTX_SUFF(pNotifierQueue));
    14211420                    AssertMsg(VALID_PTR(pItem), ("Allocating item for queue failed\n"));
    14221421
    14231422                    pItem->iPort = pAhciPort->iLUN;
    1424                     PDMQueueInsert(ahci->CTX_SUFF(pNotifierQueue), (PPDMQUEUEITEMCORE)pItem);
     1423                    PDMQueueInsert(pAhci->CTX_SUFF(pNotifierQueue), (PPDMQUEUEITEMCORE)pItem);
    14251424#else
    14261425                    LogFlowFunc(("Signal event semaphore\n"));
    1427                     int rc = SUPSemEventSignal(ahci->pSupDrvSession, pAhciPort->hEvtProcess);
     1426                    int rc = SUPSemEventSignal(pAhci->pSupDrvSession, pAhciPort->hEvtProcess);
    14281427                    AssertRC(rc);
    14291428#endif
     
    15181517 * Read from the port interrupt enable register.
    15191518 */
    1520 static int PortIntrEnable_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1519static int PortIntrEnable_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    15211520{
    15221521    ahciLog(("%s: read regIE=%#010x\n", __FUNCTION__, pAhciPort->regIE));
     
    15381537 * Write to the port interrupt enable register.
    15391538 */
    1540 static int PortIntrEnable_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1539static int PortIntrEnable_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    15411540{
    15421541    int rc = VINF_SUCCESS;
     
    15591558
    15601559    if (u32Value & u32IntrStatus)
    1561         rc = ahciHbaSetInterrupt(ahci, pAhciPort->iLUN, VINF_IOM_R3_MMIO_WRITE);
     1560        rc = ahciHbaSetInterrupt(pAhci, pAhciPort->iLUN, VINF_IOM_R3_MMIO_WRITE);
    15621561
    15631562    if (rc == VINF_SUCCESS)
     
    15701569 * Read from the port interrupt status register.
    15711570 */
    1572 static int PortIntrSts_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1571static int PortIntrSts_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    15731572{
    15741573    ahciLog(("%s: read regIS=%#010x\n", __FUNCTION__, pAhciPort->regIS));
     
    15901589 * Write to the port interrupt status register.
    15911590 */
    1592 static int PortIntrSts_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1591static int PortIntrSts_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    15931592{
    15941593    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
     
    16011600 * Read from the port FIS base address upper 32bit register.
    16021601 */
    1603 static int PortFisAddrUp_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1602static int PortFisAddrUp_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    16041603{
    16051604    ahciLog(("%s: read regFBU=%#010x\n", __FUNCTION__, pAhciPort->regFBU));
     
    16111610 * Write to the port FIS base address upper 32bit register.
    16121611 */
    1613 static int PortFisAddrUp_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1612static int PortFisAddrUp_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    16141613{
    16151614    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
     
    16241623 * Read from the port FIS base address register.
    16251624 */
    1626 static int PortFisAddr_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1625static int PortFisAddr_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    16271626{
    16281627    ahciLog(("%s: read regFB=%#010x\n", __FUNCTION__, pAhciPort->regFB));
     
    16341633 * Write to the port FIS base address register.
    16351634 */
    1636 static int PortFisAddr_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1635static int PortFisAddr_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    16371636{
    16381637    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
     
    16491648 * Write to the port command list base address upper 32bit register.
    16501649 */
    1651 static int PortCmdLstAddrUp_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1650static int PortCmdLstAddrUp_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    16521651{
    16531652    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
     
    16621661 * Read from the port command list base address upper 32bit register.
    16631662 */
    1664 static int PortCmdLstAddrUp_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1663static int PortCmdLstAddrUp_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    16651664{
    16661665    ahciLog(("%s: read regCLBU=%#010x\n", __FUNCTION__, pAhciPort->regCLBU));
     
    16721671 * Read from the port command list base address register.
    16731672 */
    1674 static int PortCmdLstAddr_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1673static int PortCmdLstAddr_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    16751674{
    16761675    ahciLog(("%s: read regCLB=%#010x\n", __FUNCTION__, pAhciPort->regCLB));
     
    16821681 * Write to the port command list base address register.
    16831682 */
    1684 static int PortCmdLstAddr_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1683static int PortCmdLstAddr_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    16851684{
    16861685    ahciLog(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
     
    16971696 * Read from the global Version register.
    16981697 */
    1699 static int HbaVersion_r(PAHCI ahci, uint32_t iReg, uint32_t *pu32Value)
    1700 {
    1701     Log(("%s: read regHbaVs=%#010x\n", __FUNCTION__, ahci->regHbaVs));
    1702     *pu32Value = ahci->regHbaVs;
     1698static int HbaVersion_r(PAHCI pAhci, uint32_t iReg, uint32_t *pu32Value)
     1699{
     1700    Log(("%s: read regHbaVs=%#010x\n", __FUNCTION__, pAhci->regHbaVs));
     1701    *pu32Value = pAhci->regHbaVs;
    17031702    return VINF_SUCCESS;
    17041703}
     
    17071706 * Read from the global Ports implemented register.
    17081707 */
    1709 static int HbaPortsImplemented_r(PAHCI ahci, uint32_t iReg, uint32_t *pu32Value)
    1710 {
    1711     Log(("%s: read regHbaPi=%#010x\n", __FUNCTION__, ahci->regHbaPi));
    1712     *pu32Value = ahci->regHbaPi;
     1708static int HbaPortsImplemented_r(PAHCI pAhci, uint32_t iReg, uint32_t *pu32Value)
     1709{
     1710    Log(("%s: read regHbaPi=%#010x\n", __FUNCTION__, pAhci->regHbaPi));
     1711    *pu32Value = pAhci->regHbaPi;
    17131712    return VINF_SUCCESS;
    17141713}
     
    17171716 * Write to the global interrupt status register.
    17181717 */
    1719 static int HbaInterruptStatus_w(PAHCI ahci, uint32_t iReg, uint32_t u32Value)
     1718static int HbaInterruptStatus_w(PAHCI pAhci, uint32_t iReg, uint32_t u32Value)
    17201719{
    17211720    int rc;
    17221721    Log(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
    17231722
    1724     rc = PDMCritSectEnter(&ahci->lock, VINF_IOM_R3_MMIO_WRITE);
     1723    rc = PDMCritSectEnter(&pAhci->lock, VINF_IOM_R3_MMIO_WRITE);
    17251724    if (rc != VINF_SUCCESS)
    17261725        return rc;
    17271726
    1728     ahci->regHbaIs &= ~(u32Value);
     1727    pAhci->regHbaIs &= ~(u32Value);
    17291728
    17301729    /*
     
    17331732     */
    17341733    bool fClear = true;
    1735     ahci->regHbaIs |= ASMAtomicXchgU32(&ahci->u32PortsInterrupted, 0);
    1736     if (!ahci->regHbaIs)
     1734    pAhci->regHbaIs |= ASMAtomicXchgU32(&pAhci->u32PortsInterrupted, 0);
     1735    if (!pAhci->regHbaIs)
    17371736    {
    17381737        unsigned i = 0;
     
    17431742            if (u32Value & 0x01)
    17441743            {
    1745                 PAHCIPort pAhciPort = &ahci->ahciPort[i];
     1744                PAHCIPort pAhciPort = &pAhci->ahciPort[i];
    17461745
    17471746                if (pAhciPort->regIE & pAhciPort->regIS)
    17481747                {
    17491748                    Log(("%s: Interrupt status of port %u set -> Set interrupt again\n", __FUNCTION__, i));
    1750                     ASMAtomicOrU32(&ahci->u32PortsInterrupted, 1 << i);
     1749                    ASMAtomicOrU32(&pAhci->u32PortsInterrupted, 1 << i);
    17511750                    fClear = false;
    17521751                    break;
     
    17611760
    17621761    if (fClear)
    1763         ahciHbaClearInterrupt(ahci);
     1762        ahciHbaClearInterrupt(pAhci);
    17641763    else
    17651764    {
    1766         Log(("%s: Not clearing interrupt: u32PortsInterrupted=%#010x\n", __FUNCTION__, ahci->u32PortsInterrupted));
     1765        Log(("%s: Not clearing interrupt: u32PortsInterrupted=%#010x\n", __FUNCTION__, pAhci->u32PortsInterrupted));
    17671766        /*
    17681767         * We need to set the interrupt again because the I/O APIC does not set it again even if the
     
    17701769         * We need to clear it first because the PCI bus only calls the interrupt controller if the state changes.
    17711770         */
    1772         PDMDevHlpPCISetIrq(ahci->CTX_SUFF(pDevIns), 0, 0);
    1773         PDMDevHlpPCISetIrq(ahci->CTX_SUFF(pDevIns), 0, 1);
    1774     }
    1775 
    1776     PDMCritSectLeave(&ahci->lock);
     1771        PDMDevHlpPCISetIrq(pAhci->CTX_SUFF(pDevIns), 0, 0);
     1772        PDMDevHlpPCISetIrq(pAhci->CTX_SUFF(pDevIns), 0, 1);
     1773    }
     1774
     1775    PDMCritSectLeave(&pAhci->lock);
    17771776    return VINF_SUCCESS;
    17781777}
     
    17811780 * Read from the global interrupt status register.
    17821781 */
    1783 static int HbaInterruptStatus_r(PAHCI ahci, uint32_t iReg, uint32_t *pu32Value)
     1782static int HbaInterruptStatus_r(PAHCI pAhci, uint32_t iReg, uint32_t *pu32Value)
    17841783{
    17851784    uint32_t u32PortsInterrupted;
    17861785    int rc;
    17871786
    1788     rc = PDMCritSectEnter(&ahci->lock, VINF_IOM_R3_MMIO_READ);
     1787    rc = PDMCritSectEnter(&pAhci->lock, VINF_IOM_R3_MMIO_READ);
    17891788    if (rc != VINF_SUCCESS)
    17901789        return rc;
    17911790
    1792     u32PortsInterrupted = ASMAtomicXchgU32(&ahci->u32PortsInterrupted, 0);
    1793 
    1794     PDMCritSectLeave(&ahci->lock);
    1795     Log(("%s: read regHbaIs=%#010x u32PortsInterrupted=%#010x\n", __FUNCTION__, ahci->regHbaIs, u32PortsInterrupted));
    1796 
    1797     ahci->regHbaIs |= u32PortsInterrupted;
     1791    u32PortsInterrupted = ASMAtomicXchgU32(&pAhci->u32PortsInterrupted, 0);
     1792
     1793    PDMCritSectLeave(&pAhci->lock);
     1794    Log(("%s: read regHbaIs=%#010x u32PortsInterrupted=%#010x\n", __FUNCTION__, pAhci->regHbaIs, u32PortsInterrupted));
     1795
     1796    pAhci->regHbaIs |= u32PortsInterrupted;
    17981797
    17991798#ifdef LOG_ENABLED
    18001799    Log(("%s:", __FUNCTION__));
    18011800    unsigned i;
    1802     for (i = 0; i < ahci->cPortsImpl; i++)
    1803     {
    1804         if ((ahci->regHbaIs >> i) & 0x01)
     1801    for (i = 0; i < pAhci->cPortsImpl; i++)
     1802    {
     1803        if ((pAhci->regHbaIs >> i) & 0x01)
    18051804            Log((" P%d", i));
    18061805    }
     
    18081807#endif
    18091808
    1810     *pu32Value = ahci->regHbaIs;
     1809    *pu32Value = pAhci->regHbaIs;
    18111810
    18121811    return VINF_SUCCESS;
     
    18161815 * Write to the global control register.
    18171816 */
    1818 static int HbaControl_w(PAHCI ahci, uint32_t iReg, uint32_t u32Value)
     1817static int HbaControl_w(PAHCI pAhci, uint32_t iReg, uint32_t u32Value)
    18191818{
    18201819    Log(("%s: write u32Value=%#010x\n"
     
    18311830     * reset bit.
    18321831     */
    1833     ASMAtomicIncU32(&ahci->cThreadsActive);
    1834     ASMAtomicWriteU32(&ahci->regHbaCtrl, (u32Value & AHCI_HBA_CTRL_RW_MASK) | AHCI_HBA_CTRL_AE);
     1832    ASMAtomicIncU32(&pAhci->cThreadsActive);
     1833    ASMAtomicWriteU32(&pAhci->regHbaCtrl, (u32Value & AHCI_HBA_CTRL_RW_MASK) | AHCI_HBA_CTRL_AE);
    18351834
    18361835    /*
     
    18381837     * the work is deferred to the last active thread otherwise.
    18391838     */
    1840     uint32_t cThreadsActive = ASMAtomicDecU32(&ahci->cThreadsActive);
     1839    uint32_t cThreadsActive = ASMAtomicDecU32(&pAhci->cThreadsActive);
    18411840    if (   (u32Value & AHCI_HBA_CTRL_HR)
    18421841        && !cThreadsActive)
    1843         ahciHBAReset(ahci);
     1842        ahciHBAReset(pAhci);
    18441843
    18451844    return VINF_SUCCESS;
     
    18501849 * Read the global control register.
    18511850 */
    1852 static int HbaControl_r(PAHCI ahci, uint32_t iReg, uint32_t *pu32Value)
     1851static int HbaControl_r(PAHCI pAhci, uint32_t iReg, uint32_t *pu32Value)
    18531852{
    18541853    Log(("%s: read regHbaCtrl=%#010x\n"
    18551854         "%s: AE=%d IE=%d HR=%d\n",
    1856          __FUNCTION__, ahci->regHbaCtrl,
    1857          __FUNCTION__, (ahci->regHbaCtrl & AHCI_HBA_CTRL_AE) >> 31, (ahci->regHbaCtrl & AHCI_HBA_CTRL_IE) >> 1,
    1858          (ahci->regHbaCtrl & AHCI_HBA_CTRL_HR)));
    1859     *pu32Value = ahci->regHbaCtrl;
     1855         __FUNCTION__, pAhci->regHbaCtrl,
     1856         __FUNCTION__, (pAhci->regHbaCtrl & AHCI_HBA_CTRL_AE) >> 31, (pAhci->regHbaCtrl & AHCI_HBA_CTRL_IE) >> 1,
     1857         (pAhci->regHbaCtrl & AHCI_HBA_CTRL_HR)));
     1858    *pu32Value = pAhci->regHbaCtrl;
    18601859    return VINF_SUCCESS;
    18611860}
     
    18641863 * Read the global capabilities register.
    18651864 */
    1866 static int HbaCapabilities_r(PAHCI ahci, uint32_t iReg, uint32_t *pu32Value)
     1865static int HbaCapabilities_r(PAHCI pAhci, uint32_t iReg, uint32_t *pu32Value)
    18671866{
    18681867    Log(("%s: read regHbaCap=%#010x\n"
    18691868         "%s: S64A=%d SNCQ=%d SIS=%d SSS=%d SALP=%d SAL=%d SCLO=%d ISS=%d SNZO=%d SAM=%d SPM=%d PMD=%d SSC=%d PSC=%d NCS=%d NP=%d\n",
    1870           __FUNCTION__, ahci->regHbaCap,
    1871           __FUNCTION__, (ahci->regHbaCap & AHCI_HBA_CAP_S64A) >> 31, (ahci->regHbaCap & AHCI_HBA_CAP_SNCQ) >> 30,
    1872           (ahci->regHbaCap & AHCI_HBA_CAP_SIS) >> 28, (ahci->regHbaCap & AHCI_HBA_CAP_SSS) >> 27,
    1873           (ahci->regHbaCap & AHCI_HBA_CAP_SALP) >> 26, (ahci->regHbaCap & AHCI_HBA_CAP_SAL) >> 25,
    1874           (ahci->regHbaCap & AHCI_HBA_CAP_SCLO) >> 24, (ahci->regHbaCap & AHCI_HBA_CAP_ISS) >> 20,
    1875           (ahci->regHbaCap & AHCI_HBA_CAP_SNZO) >> 19, (ahci->regHbaCap & AHCI_HBA_CAP_SAM) >> 18,
    1876           (ahci->regHbaCap & AHCI_HBA_CAP_SPM) >> 17, (ahci->regHbaCap & AHCI_HBA_CAP_PMD) >> 15,
    1877           (ahci->regHbaCap & AHCI_HBA_CAP_SSC) >> 14, (ahci->regHbaCap & AHCI_HBA_CAP_PSC) >> 13,
    1878           (ahci->regHbaCap & AHCI_HBA_CAP_NCS) >> 8, (ahci->regHbaCap & AHCI_HBA_CAP_NP)));
    1879     *pu32Value = ahci->regHbaCap;
     1869          __FUNCTION__, pAhci->regHbaCap,
     1870          __FUNCTION__, (pAhci->regHbaCap & AHCI_HBA_CAP_S64A) >> 31, (pAhci->regHbaCap & AHCI_HBA_CAP_SNCQ) >> 30,
     1871          (pAhci->regHbaCap & AHCI_HBA_CAP_SIS) >> 28, (pAhci->regHbaCap & AHCI_HBA_CAP_SSS) >> 27,
     1872          (pAhci->regHbaCap & AHCI_HBA_CAP_SALP) >> 26, (pAhci->regHbaCap & AHCI_HBA_CAP_SAL) >> 25,
     1873          (pAhci->regHbaCap & AHCI_HBA_CAP_SCLO) >> 24, (pAhci->regHbaCap & AHCI_HBA_CAP_ISS) >> 20,
     1874          (pAhci->regHbaCap & AHCI_HBA_CAP_SNZO) >> 19, (pAhci->regHbaCap & AHCI_HBA_CAP_SAM) >> 18,
     1875          (pAhci->regHbaCap & AHCI_HBA_CAP_SPM) >> 17, (pAhci->regHbaCap & AHCI_HBA_CAP_PMD) >> 15,
     1876          (pAhci->regHbaCap & AHCI_HBA_CAP_SSC) >> 14, (pAhci->regHbaCap & AHCI_HBA_CAP_PSC) >> 13,
     1877          (pAhci->regHbaCap & AHCI_HBA_CAP_NCS) >> 8, (pAhci->regHbaCap & AHCI_HBA_CAP_NP)));
     1878    *pu32Value = pAhci->regHbaCap;
    18801879    return VINF_SUCCESS;
    18811880}
     
    18841883 * Write to the global command completion coalescing control register.
    18851884 */
    1886 static int HbaCccCtl_w(PAHCI ahci, uint32_t iReg, uint32_t u32Value)
     1885static int HbaCccCtl_w(PAHCI pAhci, uint32_t iReg, uint32_t u32Value)
    18871886{
    18881887    Log(("%s: write u32Value=%#010x\n"
     
    18921891         AHCI_HBA_CCC_CTL_INT_GET(u32Value), (u32Value & AHCI_HBA_CCC_CTL_EN)));
    18931892
    1894     ahci->regHbaCccCtl = u32Value;
    1895     ahci->uCccTimeout  = AHCI_HBA_CCC_CTL_TV_GET(u32Value);
    1896     ahci->uCccPortNr   = AHCI_HBA_CCC_CTL_INT_GET(u32Value);
    1897     ahci->uCccNr       = AHCI_HBA_CCC_CTL_CC_GET(u32Value);
     1893    pAhci->regHbaCccCtl = u32Value;
     1894    pAhci->uCccTimeout  = AHCI_HBA_CCC_CTL_TV_GET(u32Value);
     1895    pAhci->uCccPortNr   = AHCI_HBA_CCC_CTL_INT_GET(u32Value);
     1896    pAhci->uCccNr       = AHCI_HBA_CCC_CTL_CC_GET(u32Value);
    18981897
    18991898    if (u32Value & AHCI_HBA_CCC_CTL_EN)
    19001899    {
    19011900        /* Arm the timer */
    1902         TMTimerSetMillies(ahci->CTX_SUFF(pHbaCccTimer), ahci->uCccTimeout);
     1901        TMTimerSetMillies(pAhci->CTX_SUFF(pHbaCccTimer), pAhci->uCccTimeout);
    19031902    }
    19041903    else
    19051904    {
    1906         TMTimerStop(ahci->CTX_SUFF(pHbaCccTimer));
     1905        TMTimerStop(pAhci->CTX_SUFF(pHbaCccTimer));
    19071906    }
    19081907
     
    19131912 * Read the global command completion coalescing control register.
    19141913 */
    1915 static int HbaCccCtl_r(PAHCI ahci, uint32_t iReg, uint32_t *pu32Value)
     1914static int HbaCccCtl_r(PAHCI pAhci, uint32_t iReg, uint32_t *pu32Value)
    19161915{
    19171916    Log(("%s: read regHbaCccCtl=%#010x\n"
    19181917         "%s: TV=%d CC=%d INT=%d EN=%d\n",
    1919          __FUNCTION__, ahci->regHbaCccCtl,
    1920          __FUNCTION__, AHCI_HBA_CCC_CTL_TV_GET(ahci->regHbaCccCtl), AHCI_HBA_CCC_CTL_CC_GET(ahci->regHbaCccCtl),
    1921          AHCI_HBA_CCC_CTL_INT_GET(ahci->regHbaCccCtl), (ahci->regHbaCccCtl & AHCI_HBA_CCC_CTL_EN)));
    1922     *pu32Value = ahci->regHbaCccCtl;
     1918         __FUNCTION__, pAhci->regHbaCccCtl,
     1919         __FUNCTION__, AHCI_HBA_CCC_CTL_TV_GET(pAhci->regHbaCccCtl), AHCI_HBA_CCC_CTL_CC_GET(pAhci->regHbaCccCtl),
     1920         AHCI_HBA_CCC_CTL_INT_GET(pAhci->regHbaCccCtl), (pAhci->regHbaCccCtl & AHCI_HBA_CCC_CTL_EN)));
     1921    *pu32Value = pAhci->regHbaCccCtl;
    19231922    return VINF_SUCCESS;
    19241923}
     
    19271926 * Write to the global command completion coalescing ports register.
    19281927 */
    1929 static int HbaCccPorts_w(PAHCI ahci, uint32_t iReg, uint32_t u32Value)
     1928static int HbaCccPorts_w(PAHCI pAhci, uint32_t iReg, uint32_t u32Value)
    19301929{
    19311930    Log(("%s: write u32Value=%#010x\n", __FUNCTION__, u32Value));
    19321931
    1933     ahci->regHbaCccPorts = u32Value;
     1932    pAhci->regHbaCccPorts = u32Value;
    19341933
    19351934    return VINF_SUCCESS;
     
    19391938 * Read the global command completion coalescing ports register.
    19401939 */
    1941 static int HbaCccPorts_r(PAHCI ahci, uint32_t iReg, uint32_t *pu32Value)
    1942 {
    1943     Log(("%s: read regHbaCccPorts=%#010x\n", __FUNCTION__, ahci->regHbaCccPorts));
     1940static int HbaCccPorts_r(PAHCI pAhci, uint32_t iReg, uint32_t *pu32Value)
     1941{
     1942    Log(("%s: read regHbaCccPorts=%#010x\n", __FUNCTION__, pAhci->regHbaCccPorts));
    19441943
    19451944#ifdef LOG_ENABLED
    19461945    Log(("%s:", __FUNCTION__));
    19471946    unsigned i;
    1948     for (i = 0; i < ahci->cPortsImpl; i++)
    1949     {
    1950         if ((ahci->regHbaCccPorts >> i) & 0x01)
     1947    for (i = 0; i < pAhci->cPortsImpl; i++)
     1948    {
     1949        if ((pAhci->regHbaCccPorts >> i) & 0x01)
    19511950            Log((" P%d", i));
    19521951    }
     
    19541953#endif
    19551954
    1956     *pu32Value = ahci->regHbaCccPorts;
     1955    *pu32Value = pAhci->regHbaCccPorts;
    19571956    return VINF_SUCCESS;
    19581957}
     
    19611960 * Invalid write to global register
    19621961 */
    1963 static int HbaInvalid_w(PAHCI ahci, uint32_t iReg, uint32_t u32Value)
     1962static int HbaInvalid_w(PAHCI pAhci, uint32_t iReg, uint32_t u32Value)
    19641963{
    19651964    Log(("%s: Write denied!!! iReg=%u u32Value=%#010x\n", __FUNCTION__, iReg, u32Value));
     
    19701969 * Invalid Port write.
    19711970 */
    1972 static int PortInvalid_w(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
     1971static int PortInvalid_w(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t u32Value)
    19731972{
    19741973    ahciLog(("%s: Write denied!!! iReg=%u u32Value=%#010x\n", __FUNCTION__, iReg, u32Value));
     
    19791978 * Invalid Port read.
    19801979 */
    1981 static int PortInvalid_r(PAHCI ahci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
     1980static int PortInvalid_r(PAHCI pAhci, PAHCIPort pAhciPort, uint32_t iReg, uint32_t *pu32Value)
    19821981{
    19831982    ahciLog(("%s: Read denied!!! iReg=%u\n", __FUNCTION__, iReg));
     
    57205719 *
    57215720 * @returns Whether all active tasks were canceled.
    5722  * @param   pAhciPort        The ahci port.
     5721 * @param   pAhciPort        The AHCI port.
    57235722 * @param   pAhciReqExcept   The given request is excepted from the cancelling
    57245723 *                           (used for error page reading).
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