mirror of
https://github.com/StrikerX3/StrikeBox.git
synced 2024-06-23 14:53:22 -04:00
READ(10) transfer length was not being set on ValidateCommand
This caused some DMA transfers from the DVD drive to fail
This commit is contained in:
parent
ad0fbc9a29
commit
0281d2ebff
|
@ -162,6 +162,9 @@ bool BaseDVDDriveATADeviceDriver::ValidateCommand(PacketInformation& packetInfo)
|
|||
case OpReadCapacity:
|
||||
packetInfo.transferSize = sizeof(ReadCapacityData);
|
||||
return true;
|
||||
case OpRead10:
|
||||
packetInfo.transferSize = (uint32_t)B2L16(packetInfo.cdb.read10.length) * kDVDSectorSize;
|
||||
return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -104,6 +104,8 @@ bool ImageDVDDriveATADeviceDriver::ProcessATAPIPacketNonData(PacketInformation&
|
|||
}
|
||||
|
||||
bool ImageDVDDriveATADeviceDriver::ProcessATAPIPacketDataRead(PacketInformation& packetInfo, uint8_t *packetDataBuffer, uint16_t byteCountLimit, uint32_t *packetDataSize) {
|
||||
// TODO: refactor command handling
|
||||
// - make a structure similar to ATA commands
|
||||
switch (packetInfo.cdb.opCode.u8) {
|
||||
case OpModeSense10:
|
||||
switch (packetInfo.cdb.modeSense10.pageCode) {
|
||||
|
|
Loading…
Reference in a new issue