mirror of
https://github.com/reactos/reactos.git
synced 2025-03-10 18:24:02 +00:00
Added write support, next operation code 53 27.
svn path=/branches/GSoC_2016/AHCI/; revision=72002
This commit is contained in:
parent
e51f406055
commit
c903cda7aa
1 changed files with 8 additions and 4 deletions
|
@ -849,7 +849,7 @@ AhciHwStartIo (
|
||||||
Srb->SrbStatus = DeviceRequestSense(AdapterExtension, Srb, cdb);
|
Srb->SrbStatus = DeviceRequestSense(AdapterExtension, Srb, cdb);
|
||||||
break;
|
break;
|
||||||
case SCSIOP_READ:
|
case SCSIOP_READ:
|
||||||
//case SCSIOP_WRITE:
|
case SCSIOP_WRITE:
|
||||||
Srb->SrbStatus = DeviceRequestReadWrite(AdapterExtension, Srb, cdb);
|
Srb->SrbStatus = DeviceRequestReadWrite(AdapterExtension, Srb, cdb);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1726,7 +1726,7 @@ UCHAR DeviceRequestSense (
|
||||||
|
|
||||||
ModeHeader->ModeDataLength = sizeof(MODE_PARAMETER_HEADER);
|
ModeHeader->ModeDataLength = sizeof(MODE_PARAMETER_HEADER);
|
||||||
ModeHeader->MediumType = 0;
|
ModeHeader->MediumType = 0;
|
||||||
ModeHeader->DeviceSpecificParameter = MODE_DSP_WRITE_PROTECT;
|
ModeHeader->DeviceSpecificParameter = 0;
|
||||||
ModeHeader->BlockDescriptorLength = 0;
|
ModeHeader->BlockDescriptorLength = 0;
|
||||||
|
|
||||||
if (Cdb->MODE_SENSE.PageCode == MODE_SENSE_CURRENT_VALUES)
|
if (Cdb->MODE_SENSE.PageCode == MODE_SENSE_CURRENT_VALUES)
|
||||||
|
@ -1776,9 +1776,12 @@ UCHAR DeviceRequestReadWrite (
|
||||||
|
|
||||||
NT_ASSERT(BytesPerSector > 0);
|
NT_ASSERT(BytesPerSector > 0);
|
||||||
|
|
||||||
ROUND_UP(DataTransferLength, BytesPerSector);
|
//ROUND_UP(DataTransferLength, BytesPerSector);
|
||||||
|
|
||||||
SectorCount = DataTransferLength / BytesPerSector;
|
SectorCount = DataTransferLength / BytesPerSector;
|
||||||
|
|
||||||
|
Srb->DataTransferLength = SectorCount * BytesPerSector;
|
||||||
|
|
||||||
StartOffset = AhciGetLba(Cdb, Srb->CdbLength);
|
StartOffset = AhciGetLba(Cdb, Srb->CdbLength);
|
||||||
IsReading = (Cdb->CDB10.OperationCode == SCSIOP_READ);
|
IsReading = (Cdb->CDB10.OperationCode == SCSIOP_READ);
|
||||||
|
|
||||||
|
@ -1796,7 +1799,8 @@ UCHAR DeviceRequestReadWrite (
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SrbExtension->Flags |= ATA_FLAGS_DATA_OUT;
|
SrbExtension->Flags |= ATA_FLAGS_DATA_OUT;
|
||||||
NT_ASSERT(FALSE);
|
SrbExtension->CommandReg = IDE_COMMAND_WRITE_DMA;
|
||||||
|
//NT_ASSERT(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
SrbExtension->FeaturesLow = 0;
|
SrbExtension->FeaturesLow = 0;
|
||||||
|
|
Loading…
Reference in a new issue