mirror of
https://github.com/aaru-dps/Aaru.Server.git
synced 2025-12-16 19:24:27 +00:00
REFACTOR: All refactor in DiscImageChef.Devices.
This commit is contained in:
@@ -92,8 +92,7 @@ namespace DiscImageChef.Devices.Linux
|
||||
|
||||
sense |= (ioHdr.info & SgInfo.OkMask) != SgInfo.Ok;
|
||||
|
||||
if(ioHdr.duration > 0) duration = ioHdr.duration;
|
||||
else duration = (end - start).TotalMilliseconds;
|
||||
duration = ioHdr.duration > 0 ? ioHdr.duration : (end - start).TotalMilliseconds;
|
||||
|
||||
Marshal.FreeHGlobal(ioHdr.dxferp);
|
||||
Marshal.FreeHGlobal(ioHdr.cmdp);
|
||||
@@ -162,8 +161,7 @@ namespace DiscImageChef.Devices.Linux
|
||||
cdb[13] = registers.DeviceHead;
|
||||
cdb[14] = registers.Command;
|
||||
|
||||
byte[] senseBuffer;
|
||||
int error = SendScsiCommand(fd, cdb, ref buffer, out senseBuffer, timeout,
|
||||
int error = SendScsiCommand(fd, cdb, ref buffer, out byte[] senseBuffer, timeout,
|
||||
AtaProtocolToScsiDirection(protocol), out duration, out sense);
|
||||
|
||||
if(senseBuffer.Length < 22 || senseBuffer[8] != 0x09 && senseBuffer[9] != 0x0C) return error;
|
||||
@@ -224,8 +222,7 @@ namespace DiscImageChef.Devices.Linux
|
||||
cdb[13] = registers.DeviceHead;
|
||||
cdb[14] = registers.Command;
|
||||
|
||||
byte[] senseBuffer;
|
||||
int error = SendScsiCommand(fd, cdb, ref buffer, out senseBuffer, timeout,
|
||||
int error = SendScsiCommand(fd, cdb, ref buffer, out byte[] senseBuffer, timeout,
|
||||
AtaProtocolToScsiDirection(protocol), out duration, out sense);
|
||||
|
||||
if(senseBuffer.Length < 22 || senseBuffer[8] != 0x09 && senseBuffer[9] != 0x0C) return error;
|
||||
@@ -292,8 +289,7 @@ namespace DiscImageChef.Devices.Linux
|
||||
cdb[13] = registers.DeviceHead;
|
||||
cdb[14] = registers.Command;
|
||||
|
||||
byte[] senseBuffer;
|
||||
int error = SendScsiCommand(fd, cdb, ref buffer, out senseBuffer, timeout,
|
||||
int error = SendScsiCommand(fd, cdb, ref buffer, out byte[] senseBuffer, timeout,
|
||||
AtaProtocolToScsiDirection(protocol), out duration, out sense);
|
||||
|
||||
if(senseBuffer.Length < 22 || senseBuffer[8] != 0x09 && senseBuffer[9] != 0x0C) return error;
|
||||
|
||||
@@ -46,9 +46,7 @@ namespace DiscImageChef.Devices.Linux
|
||||
DeviceInfo[] devices = new DeviceInfo[sysdevs.Length];
|
||||
bool hasUdev;
|
||||
|
||||
StreamReader sr;
|
||||
IntPtr udev = IntPtr.Zero;
|
||||
IntPtr udevDev;
|
||||
|
||||
try
|
||||
{
|
||||
@@ -59,13 +57,12 @@ namespace DiscImageChef.Devices.Linux
|
||||
|
||||
for(int i = 0; i < sysdevs.Length; i++)
|
||||
{
|
||||
devices[i] = new DeviceInfo();
|
||||
devices[i].Path = "/dev/" + Path.GetFileName(sysdevs[i]);
|
||||
devices[i] = new DeviceInfo {Path = "/dev/" + Path.GetFileName(sysdevs[i])};
|
||||
|
||||
if(hasUdev)
|
||||
{
|
||||
udevDev = Extern.udev_device_new_from_subsystem_sysname(udev, "block",
|
||||
Path.GetFileName(sysdevs[i]));
|
||||
IntPtr udevDev = Extern.udev_device_new_from_subsystem_sysname(udev, "block",
|
||||
Path.GetFileName(sysdevs[i]));
|
||||
devices[i].Vendor = Extern.udev_device_get_property_value(udevDev, "ID_VENDOR");
|
||||
devices[i].Model = Extern.udev_device_get_property_value(udevDev, "ID_MODEL");
|
||||
if(!string.IsNullOrEmpty(devices[i].Model)) devices[i].Model = devices[i].Model.Replace('_', ' ');
|
||||
@@ -75,10 +72,11 @@ namespace DiscImageChef.Devices.Linux
|
||||
devices[i].Bus = Extern.udev_device_get_property_value(udevDev, "ID_BUS");
|
||||
}
|
||||
|
||||
StreamReader sr;
|
||||
if(File.Exists(Path.Combine(sysdevs[i], "device/vendor")) && string.IsNullOrEmpty(devices[i].Vendor))
|
||||
{
|
||||
sr = new StreamReader(Path.Combine(sysdevs[i], "device/vendor"), Encoding.ASCII);
|
||||
devices[i].Vendor = sr.ReadLine().Trim();
|
||||
devices[i].Vendor = sr.ReadLine()?.Trim();
|
||||
}
|
||||
else if(devices[i].Path.StartsWith("/dev/loop", StringComparison.CurrentCulture))
|
||||
devices[i].Vendor = "Linux";
|
||||
@@ -87,7 +85,7 @@ namespace DiscImageChef.Devices.Linux
|
||||
(string.IsNullOrEmpty(devices[i].Model) || devices[i].Bus == "ata"))
|
||||
{
|
||||
sr = new StreamReader(Path.Combine(sysdevs[i], "device/model"), Encoding.ASCII);
|
||||
devices[i].Model = sr.ReadLine().Trim();
|
||||
devices[i].Model = sr.ReadLine()?.Trim();
|
||||
}
|
||||
else if(devices[i].Path.StartsWith("/dev/loop", StringComparison.CurrentCulture))
|
||||
devices[i].Model = "Linux";
|
||||
@@ -95,7 +93,7 @@ namespace DiscImageChef.Devices.Linux
|
||||
if(File.Exists(Path.Combine(sysdevs[i], "device/serial")) && string.IsNullOrEmpty(devices[i].Serial))
|
||||
{
|
||||
sr = new StreamReader(Path.Combine(sysdevs[i], "device/serial"), Encoding.ASCII);
|
||||
devices[i].Serial = sr.ReadLine().Trim();
|
||||
devices[i].Serial = sr.ReadLine()?.Trim();
|
||||
}
|
||||
|
||||
if(string.IsNullOrEmpty(devices[i].Vendor) || devices[i].Vendor == "ATA")
|
||||
|
||||
@@ -32,11 +32,13 @@
|
||||
// ****************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace DiscImageChef.Devices.Linux
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
|
||||
struct SgIoHdrT
|
||||
{
|
||||
/// <summary>
|
||||
@@ -67,6 +69,7 @@ namespace DiscImageChef.Devices.Linux
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
|
||||
struct MmcIocCmd
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user