VirtualBox

Changeset 67886 in vbox


Ignore:
Timestamp:
Jul 10, 2017 5:17:05 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
116852
Message:

BusLogic: Implemented mostly dummy Enable OMBR Interrupt command.

File:
1 edited

Legend:

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

    r67806 r67886  
    11581158{
    11591159    LogFlowFunc(("pBusLogic=%#p\n", pBusLogic));
     1160    Assert(pBusLogic->uOperationCode != BUSLOGICCOMMAND_EXECUTE_MAILBOX_COMMAND);
    11601161
    11611162    pBusLogic->fUseLocalRam = false;
     
    11631164    pBusLogic->iReply = 0;
    11641165
    1165     /* Modify I/O address does not generate an interrupt. */
    1166     if (pBusLogic->uOperationCode != BUSLOGICCOMMAND_EXECUTE_MAILBOX_COMMAND)
     1166    /* The Enable OMBR command does not set CMDC when successful. */
     1167    if (pBusLogic->uOperationCode != BUSLOGICCOMMAND_ENABLE_OUTGOING_MAILBOX_AVAILABLE_INTERRUPT)
    11671168    {
    11681169        /* Notify that the command is complete. */
     
    19691970            PRequestInitMbx pRequest = (PRequestInitMbx)pBusLogic->aCommandBuffer;
    19701971
     1972            ///@todo: Command should fail if requested no. of mailbox entries is zero
    19711973            pBusLogic->fMbxIs24Bit = true;
    19721974            pBusLogic->cMailbox = pRequest->cMailbox;
     
    19881990            PRequestInitializeExtendedMailbox pRequest = (PRequestInitializeExtendedMailbox)pBusLogic->aCommandBuffer;
    19891991
     1992            ///@todo: Command should fail if requested no. of mailbox entries is zero
    19901993            pBusLogic->fMbxIs24Bit = false;
    19911994            pBusLogic->cMailbox = pRequest->cMailbox;
     
    20902093            break;
    20912094        }
     2095        case BUSLOGICCOMMAND_ENABLE_OUTGOING_MAILBOX_AVAILABLE_INTERRUPT:
     2096        {
     2097            uint8_t     uEnable = pBusLogic->aCommandBuffer[0];
     2098
     2099            pBusLogic->cbReplyParametersLeft = 0;
     2100            Log(("Enable OMBR: %u\n", uEnable));
     2101            /* Only 0/1 are accepted. */
     2102            if (uEnable > 1)
     2103                pBusLogic->regStatus |= BL_STAT_CMDINV;
     2104            else
     2105            {
     2106                pBusLogic->LocalRam.structured.autoSCSIData.uReserved6 = uEnable;
     2107                fSuppressIrq = true;
     2108            }
     2109            break;
     2110        }
    20922111        case BUSLOGICCOMMAND_SET_PREEMPT_TIME_ON_BUS:
    20932112        {
     
    23062325            if ((uVal == BUSLOGICCOMMAND_EXECUTE_MAILBOX_COMMAND) && (pBusLogic->uOperationCode == 0xff))
    23072326            {
     2327                ///@todo: Should fail if BL_STAT_INREQ is set
    23082328                /* If there are no mailboxes configured, don't even try to do anything. */
    23092329                if (pBusLogic->cMailbox)
     
    23572377                    case BUSLOGICCOMMAND_DISABLE_HOST_ADAPTER_INTERRUPT:
    23582378                    case BUSLOGICCOMMAND_ECHO_COMMAND_DATA:
     2379                    case BUSLOGICCOMMAND_ENABLE_OUTGOING_MAILBOX_AVAILABLE_INTERRUPT:
    23592380                    case BUSLOGICCOMMAND_SET_PREEMPT_TIME_ON_BUS:
    23602381                    case BUSLOGICCOMMAND_SET_TIME_OFF_BUS:
Note: See TracChangeset for help on using the changeset viewer.

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