VirtualBox

Changeset 70776 in vbox


Ignore:
Timestamp:
Jan 28, 2018 9:51:10 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
120549
Message:

Devices/Storage/DevATA.cpp: Implement MODE SENSE (6) command to be on the same level as the VSCSI implementation and what we allow in the passthrough code

File:
1 edited

Legend:

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

    r70687 r70776  
    32253225            ataR3StartTransfer(s, RT_MIN(cbMax, 8), PDMMEDIATXDIR_FROM_DEVICE, ATAFN_BT_ATAPI_CMD, ATAFN_SS_ATAPI_GET_EVENT_STATUS_NOTIFICATION, true);
    32263226            break;
     3227        case SCSI_MODE_SENSE_6:
     3228        {
     3229            uint8_t uPageControl, uPageCode;
     3230            cbMax = pbPacket[4];
     3231            uPageControl = pbPacket[2] >> 6;
     3232            uPageCode = pbPacket[2] & 0x3f;
     3233            switch (uPageControl)
     3234            {
     3235                case SCSI_PAGECONTROL_CURRENT:
     3236                    switch (uPageCode)
     3237                    {
     3238                        case SCSI_MODEPAGE_ERROR_RECOVERY:
     3239                            ataR3StartTransfer(s, RT_MIN(cbMax, 16), PDMMEDIATXDIR_FROM_DEVICE, ATAFN_BT_ATAPI_CMD, ATAFN_SS_ATAPI_MODE_SENSE_ERROR_RECOVERY, true);
     3240                            break;
     3241                        case SCSI_MODEPAGE_CD_STATUS:
     3242                            ataR3StartTransfer(s, RT_MIN(cbMax, 40), PDMMEDIATXDIR_FROM_DEVICE, ATAFN_BT_ATAPI_CMD, ATAFN_SS_ATAPI_MODE_SENSE_CD_STATUS, true);
     3243                            break;
     3244                        default:
     3245                            goto error_cmd;
     3246                    }
     3247                    break;
     3248                case SCSI_PAGECONTROL_CHANGEABLE:
     3249                    goto error_cmd;
     3250                case SCSI_PAGECONTROL_DEFAULT:
     3251                    goto error_cmd;
     3252                default:
     3253                case SCSI_PAGECONTROL_SAVED:
     3254                    atapiR3CmdErrorSimple(s, SCSI_SENSE_ILLEGAL_REQUEST, SCSI_ASC_SAVING_PARAMETERS_NOT_SUPPORTED);
     3255                    break;
     3256            }
     3257            break;
     3258        }
    32273259        case SCSI_MODE_SENSE_10:
    32283260        {
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