VirtualBox

Changeset 40592 in vbox for trunk/src/VBox/Devices/Input


Ignore:
Timestamp:
Mar 23, 2012 1:54:13 PM (13 years ago)
Author:
vboxsync
Message:

Fixed keyboard command state machine (incomplete command with parameter aborted by another command.)

File:
1 edited

Legend:

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

    r40367 r40592  
    721721    case KCMD_ECHO:
    722722        PS2InsertQueue((GeneriQ *)&pThis->cmdQ, KRSP_ECHO);
     723        pThis->u8CurrCmd = 0;
    723724        break;
    724725    case KCMD_READ_ID:
     
    726727        PS2InsertQueue((GeneriQ *)&pThis->cmdQ, KRSP_ID1);
    727728        PS2InsertQueue((GeneriQ *)&pThis->cmdQ, KRSP_ID2);
     729        pThis->u8CurrCmd = 0;
    728730        break;
    729731    case KCMD_ENABLE:
     
    732734        /* Clear last typematic key?? */
    733735        PS2InsertQueue((GeneriQ *)&pThis->cmdQ, KRSP_ACK);
     736        pThis->u8CurrCmd = 0;
    734737        break;
    735738    case KCMD_DFLT_DISABLE:
     
    737740        PS2KSetDefaults(pThis);
    738741        PS2InsertQueue((GeneriQ *)&pThis->cmdQ, KRSP_ACK);
     742        pThis->u8CurrCmd = 0;
    739743        break;
    740744    case KCMD_SET_DEFAULT:
    741745        PS2KSetDefaults(pThis);
    742746        PS2InsertQueue((GeneriQ *)&pThis->cmdQ, KRSP_ACK);
     747        pThis->u8CurrCmd = 0;
    743748        break;
    744749    case KCMD_ALL_TYPEMATIC:
     
    748753        //@todo: Set the key types here.
    749754        PS2InsertQueue((GeneriQ *)&pThis->cmdQ, KRSP_ACK);
     755        pThis->u8CurrCmd = 0;
    750756        break;
    751757    case KCMD_RESEND:
     758        pThis->u8CurrCmd = 0;
    752759        break;
    753760    case KCMD_RESET:
     
    821828    case KCMD_INVALID_2:
    822829        PS2InsertQueue((GeneriQ *)&pThis->cmdQ, KRSP_RESEND);
     830        pThis->u8CurrCmd = 0;
    823831        break;
    824832    }
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