diff --git a/DiscImageChef.Devices/Structs.cs b/DiscImageChef.Decoders/ATA/Errors.cs similarity index 94% rename from DiscImageChef.Devices/Structs.cs rename to DiscImageChef.Decoders/ATA/Errors.cs index c78e0595..877a463b 100644 --- a/DiscImageChef.Devices/Structs.cs +++ b/DiscImageChef.Decoders/ATA/Errors.cs @@ -2,11 +2,11 @@ // The Disc Image Chef // ---------------------------------------------------------------------------- // -// Filename : Structs.cs +// Filename : Errors.cs // Version : 1.0 // Author(s) : Natalia Portillo // -// Component : Direct device access +// Component : Component // // Revision : $Revision$ // Last change by : $Author$ @@ -14,7 +14,7 @@ // // --[ Description ] ---------------------------------------------------------- // -// Contains enumerations that are common to all operating systems +// Description // // --[ License ] -------------------------------------------------------------- // @@ -37,7 +37,7 @@ // //$Id$ using System; -namespace DiscImageChef.Devices +namespace DiscImageChef.Decoders.ATA { public struct AtaRegistersCHS { diff --git a/DiscImageChef.Decoders/ChangeLog b/DiscImageChef.Decoders/ChangeLog index cd18e984..f8ea336c 100644 --- a/DiscImageChef.Decoders/ChangeLog +++ b/DiscImageChef.Decoders/ChangeLog @@ -1,3 +1,12 @@ +2015-11-23 Natalia Portillo + + * ATA/Errors.cs: + * DiscImageChef.Decoders.csproj: + Moved ATA register definition to a more common place. + + * SCSI/Sense.cs: + Added information from SAT-4. + 2015-11-23 Natalia Portillo * SCSI/Sense.cs: diff --git a/DiscImageChef.Decoders/DiscImageChef.Decoders.csproj b/DiscImageChef.Decoders/DiscImageChef.Decoders.csproj index eddc45ff..2cf746d7 100644 --- a/DiscImageChef.Decoders/DiscImageChef.Decoders.csproj +++ b/DiscImageChef.Decoders/DiscImageChef.Decoders.csproj @@ -83,6 +83,7 @@ + diff --git a/DiscImageChef.Decoders/SCSI/Sense.cs b/DiscImageChef.Decoders/SCSI/Sense.cs index 13cb54b4..ca922057 100644 --- a/DiscImageChef.Decoders/SCSI/Sense.cs +++ b/DiscImageChef.Decoders/SCSI/Sense.cs @@ -38,6 +38,7 @@ using System; using System.Text; using System.Collections.Generic; +using DiscImageChef.Decoders.ATA; namespace DiscImageChef.Decoders.SCSI { @@ -621,9 +622,19 @@ namespace DiscImageChef.Decoders.SCSI throw new NotImplementedException("Check OSD"); } - public static void DecodeDescriptor09(byte[] descriptor) + public static AtaErrorRegistersLBA48 DecodeDescriptor09(byte[] descriptor) { - throw new NotImplementedException("Check SAT-3"); + AtaErrorRegistersLBA48 errorRegisters = new AtaErrorRegistersLBA48(); + + errorRegisters.error = descriptor[3]; + errorRegisters.sectorCount = (ushort)((descriptor[4] << 8) + descriptor[5]); + errorRegisters.lbaLow = (ushort)((descriptor[6] << 8) + descriptor[7]); + errorRegisters.lbaMid = (ushort)((descriptor[8] << 8) + descriptor[9]); + errorRegisters.lbaHigh = (ushort)((descriptor[10] << 8) + descriptor[11]); + errorRegisters.deviceHead = descriptor[12]; + errorRegisters.status = descriptor[13]; + + return errorRegisters; } public static void DecodeDescriptor0B(byte[] descriptor) diff --git a/DiscImageChef.Devices/ChangeLog b/DiscImageChef.Devices/ChangeLog index 2c1e0f06..98fbd2c3 100644 --- a/DiscImageChef.Devices/ChangeLog +++ b/DiscImageChef.Devices/ChangeLog @@ -1,3 +1,14 @@ +2015-11-23 Natalia Portillo + + * Command.cs: + * Linux/Command.cs: + * Device/Commands.cs: + * Device/AtaCommands.cs: + * Device/Constructor.cs: + * Device/AtapiCommands.cs: + * DiscImageChef.Devices.csproj: + Moved ATA register definition to a more common place. + 2015-11-05 Natalia Portillo * Device/Constructor.cs: diff --git a/DiscImageChef.Devices/Command.cs b/DiscImageChef.Devices/Command.cs index 3ef6cce0..e71dd61f 100644 --- a/DiscImageChef.Devices/Command.cs +++ b/DiscImageChef.Devices/Command.cs @@ -39,6 +39,7 @@ using System; using DiscImageChef.Interop; using Microsoft.Win32.SafeHandles; +using DiscImageChef.Decoders.ATA; namespace DiscImageChef.Devices { diff --git a/DiscImageChef.Devices/Device/AtaCommands.cs b/DiscImageChef.Devices/Device/AtaCommands.cs index 06891ae9..433a2573 100644 --- a/DiscImageChef.Devices/Device/AtaCommands.cs +++ b/DiscImageChef.Devices/Device/AtaCommands.cs @@ -37,6 +37,7 @@ // //$Id$ using System; using DiscImageChef.Console; +using DiscImageChef.Decoders.ATA; namespace DiscImageChef.Devices { diff --git a/DiscImageChef.Devices/Device/AtapiCommands.cs b/DiscImageChef.Devices/Device/AtapiCommands.cs index 93366871..6195b703 100644 --- a/DiscImageChef.Devices/Device/AtapiCommands.cs +++ b/DiscImageChef.Devices/Device/AtapiCommands.cs @@ -37,6 +37,7 @@ // //$Id$ using System; using DiscImageChef.Console; +using DiscImageChef.Decoders.ATA; namespace DiscImageChef.Devices { diff --git a/DiscImageChef.Devices/Device/Commands.cs b/DiscImageChef.Devices/Device/Commands.cs index 7ece5d35..81c6f4da 100644 --- a/DiscImageChef.Devices/Device/Commands.cs +++ b/DiscImageChef.Devices/Device/Commands.cs @@ -36,6 +36,7 @@ // ****************************************************************************/ // //$Id$ using System; +using DiscImageChef.Decoders.ATA; namespace DiscImageChef.Devices { diff --git a/DiscImageChef.Devices/Device/Constructor.cs b/DiscImageChef.Devices/Device/Constructor.cs index 7f153e2f..b4e87fa8 100644 --- a/DiscImageChef.Devices/Device/Constructor.cs +++ b/DiscImageChef.Devices/Device/Constructor.cs @@ -38,6 +38,7 @@ using System; using Microsoft.Win32.SafeHandles; using System.Runtime.InteropServices; +using DiscImageChef.Decoders.ATA; namespace DiscImageChef.Devices { diff --git a/DiscImageChef.Devices/DiscImageChef.Devices.csproj b/DiscImageChef.Devices/DiscImageChef.Devices.csproj index b3414488..a49ff650 100644 --- a/DiscImageChef.Devices/DiscImageChef.Devices.csproj +++ b/DiscImageChef.Devices/DiscImageChef.Devices.csproj @@ -49,7 +49,6 @@ - diff --git a/DiscImageChef.Devices/Linux/Command.cs b/DiscImageChef.Devices/Linux/Command.cs index 11f23b79..e23b66ce 100644 --- a/DiscImageChef.Devices/Linux/Command.cs +++ b/DiscImageChef.Devices/Linux/Command.cs @@ -39,6 +39,7 @@ using System; using System.Runtime.InteropServices; +using DiscImageChef.Decoders.ATA; namespace DiscImageChef.Devices.Linux { diff --git a/DiscImageChef/ChangeLog b/DiscImageChef/ChangeLog index 89c47fc1..71fbf2b0 100644 --- a/DiscImageChef/ChangeLog +++ b/DiscImageChef/ChangeLog @@ -1,3 +1,8 @@ +2015-11-23 Natalia Portillo + + * Commands/DeviceInfo.cs: + Moved ATA register definition to a more common place. + 2015-11-10 Natalia Portillo * Commands/Checksum.cs: diff --git a/DiscImageChef/Commands/DeviceInfo.cs b/DiscImageChef/Commands/DeviceInfo.cs index 1d7ea929..a07d9fb5 100644 --- a/DiscImageChef/Commands/DeviceInfo.cs +++ b/DiscImageChef/Commands/DeviceInfo.cs @@ -40,6 +40,7 @@ using DiscImageChef.Devices; using System.IO; using DiscImageChef.Console; using System.Text; +using DiscImageChef.Decoders.ATA; namespace DiscImageChef.Commands {