Changeset 46400 in vbox for trunk/src/VBox/Devices/Storage/VSCSI
- Timestamp:
- Jun 5, 2013 7:58:39 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 86226
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/VSCSI/VSCSILunSbc.cpp
r44528 r46400 278 278 RTSgBufCopyFromBuf(&pVScsiReq->SgBuf, aReply, sizeof(aReply)); 279 279 rcReq = vscsiLunReqSenseOkSet(pVScsiLun, pVScsiReq); 280 break; 281 } 282 case SCSI_MODE_SELECT_6: 283 { 284 uint8_t abParms[12]; 285 size_t cbCopied; 286 size_t cbList = pVScsiReq->pbCDB[4]; 287 288 /* Copy the parameters. */ 289 cbCopied = RTSgBufCopyToBuf(&pVScsiReq->SgBuf, &abParms[0], sizeof(abParms)); 290 291 /* Handle short LOGICAL BLOCK LENGTH parameter. */ 292 if ( !(pVScsiReq->pbCDB[1] & 0x01) 293 && cbCopied == sizeof(abParms) 294 && cbList >= 12 295 && abParms[3] == 8) 296 { 297 uint32_t cbBlock; 298 299 cbBlock = vscsiBE2HU24(&abParms[4 + 5]); 300 Log2(("SBC: set LOGICAL BLOCK LENGTH to %u\n", cbBlock)); 301 if (cbBlock == 512) /* Fixed block size. */ 302 { 303 rcReq = vscsiLunReqSenseOkSet(pVScsiLun, pVScsiReq); 304 break; 305 } 306 } 307 /* Fail any other requests. */ 308 rcReq = vscsiLunReqSenseErrorSet(pVScsiLun, pVScsiReq, SCSI_SENSE_ILLEGAL_REQUEST, SCSI_ASC_INV_FIELD_IN_CMD_PACKET, 0x00); 280 309 break; 281 310 }
Note:
See TracChangeset
for help on using the changeset viewer.