VirtualBox

Changeset 108986 in vbox


Ignore:
Timestamp:
Apr 15, 2025 2:58:11 PM (5 days ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168506
Message:

DevPS2M: Fixed Parfait warning about switch statement testing for impossible values outside of IN_RING3.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Input/DevPS2M.cpp

    r106061 r108986  
    504504
    505505#ifndef IN_RING3
     506    RT_NOREF(pDevIns);  /* pDevIns only used IN_RING3 */
     507
    506508    /* Reset, Enable, and Set Default commands must be run in R3. */
    507509    if (cmd == ACMD_RESET || cmd == ACMD_ENABLE || cmd == ACMD_SET_DEFAULT)
     
    511513    switch (cmd)
    512514    {
    513         case ACMD_SET_SCALE_11:
    514             pThis->u8State &= ~AUX_STATE_SCALING;
    515             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    516             pThis->u8CurrCmd = 0;
    517             break;
    518         case ACMD_SET_SCALE_21:
    519             pThis->u8State |= AUX_STATE_SCALING;
    520             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    521             pThis->u8CurrCmd = 0;
    522             break;
    523         case ACMD_REQ_STATUS:
    524             /* Report current status, sample rate, and resolution. */
    525             u8Val  = (pThis->u8State & AUX_STATE_EXTERNAL) | (pThis->fCurrB & PS2M_STD_BTN_MASK);
    526             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    527             PS2Q_INSERT(&pThis->cmdQ, u8Val);
    528             PS2Q_INSERT(&pThis->cmdQ, pThis->u8Resolution);
    529             PS2Q_INSERT(&pThis->cmdQ, pThis->u8SampleRate);
    530             pThis->u8CurrCmd = 0;
    531             break;
    532         case ACMD_SET_STREAM:
    533             pThis->u8State &= ~AUX_STATE_REMOTE;
    534             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    535             pThis->u8CurrCmd = 0;
    536             break;
    537         case ACMD_READ_REMOTE:
    538             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    539             ps2mReportAccumulatedEvents(pThis, &pThis->cmdQ.Hdr, RT_ELEMENTS(pThis->cmdQ.abQueue), pThis->cmdQ.abQueue, false);
    540             pThis->u8CurrCmd = 0;
    541             break;
    542         case ACMD_RESET_WRAP:
    543             pThis->enmMode = AUX_MODE_STD;
    544             /* NB: Stream mode reporting remains disabled! */
    545             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    546             pThis->u8CurrCmd = 0;
    547             break;
    548         case ACMD_SET_WRAP:
    549             pThis->enmMode = AUX_MODE_WRAP;
    550             pThis->u8State &= ~AUX_STATE_ENABLED;
    551             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    552             pThis->u8CurrCmd = 0;
    553             break;
    554         case ACMD_SET_REMOTE:
    555             pThis->u8State |= AUX_STATE_REMOTE;
    556             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    557             pThis->u8CurrCmd = 0;
    558             break;
    559         case ACMD_READ_ID:
    560             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    561             /* ImEx + horizontal is protocol 4, just like plain ImEx. */
    562             u8Val = pThis->enmProtocol == PS2M_PROTO_IMEX_HORZ ? PS2M_PROTO_IMEX : pThis->enmProtocol;
    563             PS2Q_INSERT(&pThis->cmdQ, u8Val);
    564             pThis->u8CurrCmd = 0;
    565             break;
     515#ifdef IN_RING3
    566516        case ACMD_ENABLE:
    567517            pThis->u8State |= AUX_STATE_ENABLED;
    568 #ifdef IN_RING3
    569518            ps2mR3SetDriverState(&PDMDEVINS_2_DATA_CC(pDevIns, PKBDSTATER3)->Aux, true);
    570 #else
    571             AssertLogRelMsgFailed(("Invalid ACMD_ENABLE outside R3!\n"));
    572 #endif
    573519            PS2Q_CLEAR(&pThis->evtQ);
    574520            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    575             pThis->u8CurrCmd = 0;
    576             break;
    577         case ACMD_DISABLE:
    578             pThis->u8State &= ~AUX_STATE_ENABLED;
    579             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    580             pThis->u8CurrCmd = 0;
    581             break;
    582         case ACMD_SET_DEFAULT:
    583             ps2mSetDefaults(pThis);
    584             PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
    585             pThis->u8CurrCmd = 0;
    586             break;
    587         case ACMD_RESEND:
    588521            pThis->u8CurrCmd = 0;
    589522            break;
     
    598531                PDMDevHlpTimerSetMillies(pDevIns, pThis->hDelayTimer, 1);
    599532            else
    600 #ifdef IN_RING3
    601533                ps2mR3Reset(pThis, &PDMDEVINS_2_DATA_CC(pDevIns, PKBDSTATER3)->Aux);
    602 #else
    603                 AssertLogRelMsgFailed(("Invalid ACMD_RESET outside R3!\n"));
     534            break;
     535        case ACMD_SET_DEFAULT:
     536            ps2mSetDefaults(pThis);
     537            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     538            pThis->u8CurrCmd = 0;
     539            break;
    604540#endif
     541        case ACMD_SET_SCALE_11:
     542            pThis->u8State &= ~AUX_STATE_SCALING;
     543            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     544            pThis->u8CurrCmd = 0;
     545            break;
     546        case ACMD_SET_SCALE_21:
     547            pThis->u8State |= AUX_STATE_SCALING;
     548            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     549            pThis->u8CurrCmd = 0;
     550            break;
     551        case ACMD_REQ_STATUS:
     552            /* Report current status, sample rate, and resolution. */
     553            u8Val  = (pThis->u8State & AUX_STATE_EXTERNAL) | (pThis->fCurrB & PS2M_STD_BTN_MASK);
     554            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     555            PS2Q_INSERT(&pThis->cmdQ, u8Val);
     556            PS2Q_INSERT(&pThis->cmdQ, pThis->u8Resolution);
     557            PS2Q_INSERT(&pThis->cmdQ, pThis->u8SampleRate);
     558            pThis->u8CurrCmd = 0;
     559            break;
     560        case ACMD_SET_STREAM:
     561            pThis->u8State &= ~AUX_STATE_REMOTE;
     562            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     563            pThis->u8CurrCmd = 0;
     564            break;
     565        case ACMD_READ_REMOTE:
     566            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     567            ps2mReportAccumulatedEvents(pThis, &pThis->cmdQ.Hdr, RT_ELEMENTS(pThis->cmdQ.abQueue), pThis->cmdQ.abQueue, false);
     568            pThis->u8CurrCmd = 0;
     569            break;
     570        case ACMD_RESET_WRAP:
     571            pThis->enmMode = AUX_MODE_STD;
     572            /* NB: Stream mode reporting remains disabled! */
     573            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     574            pThis->u8CurrCmd = 0;
     575            break;
     576        case ACMD_SET_WRAP:
     577            pThis->enmMode = AUX_MODE_WRAP;
     578            pThis->u8State &= ~AUX_STATE_ENABLED;
     579            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     580            pThis->u8CurrCmd = 0;
     581            break;
     582        case ACMD_SET_REMOTE:
     583            pThis->u8State |= AUX_STATE_REMOTE;
     584            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     585            pThis->u8CurrCmd = 0;
     586            break;
     587        case ACMD_READ_ID:
     588            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     589            /* ImEx + horizontal is protocol 4, just like plain ImEx. */
     590            u8Val = pThis->enmProtocol == PS2M_PROTO_IMEX_HORZ ? PS2M_PROTO_IMEX : pThis->enmProtocol;
     591            PS2Q_INSERT(&pThis->cmdQ, u8Val);
     592            pThis->u8CurrCmd = 0;
     593            break;
     594        case ACMD_DISABLE:
     595            pThis->u8State &= ~AUX_STATE_ENABLED;
     596            PS2Q_INSERT(&pThis->cmdQ, ARSP_ACK);
     597            pThis->u8CurrCmd = 0;
     598            break;
     599        case ACMD_RESEND:
     600            pThis->u8CurrCmd = 0;
    605601            break;
    606602        /* The following commands need a parameter. */
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