From d7546d4e88ed8fd41ad7bf132218136af48f4f0f Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Wed, 14 Oct 2015 01:07:45 +0100 Subject: [PATCH] * DiscImageChef.Devices/Linux/Enums.cs: * DiscImageChef.Devices/Linux/Extern.cs: * DiscImageChef.Devices/Linux/Structs.cs: Since libata, ATA/ATAPI commands should be sent using libata's SCSI/ATA Translation Layer, so remove HDIO ioctls. * DiscImageChef.Interop/DetectOS.cs: Add code to detect if running under 32 or 64 bits. --- DiscImageChef.Devices/ChangeLog | 8 ++++++ DiscImageChef.Devices/Linux/Enums.cs | 7 ------ DiscImageChef.Devices/Linux/Extern.cs | 6 ----- DiscImageChef.Devices/Linux/Structs.cs | 34 -------------------------- DiscImageChef.Interop/ChangeLog | 5 ++++ DiscImageChef.Interop/DetectOS.cs | 16 ++++++++++++ 6 files changed, 29 insertions(+), 47 deletions(-) diff --git a/DiscImageChef.Devices/ChangeLog b/DiscImageChef.Devices/ChangeLog index f56ba1ac8..90950917e 100644 --- a/DiscImageChef.Devices/ChangeLog +++ b/DiscImageChef.Devices/ChangeLog @@ -1,3 +1,11 @@ +2015-10-14 Natalia Portillo + + * Linux/Enums.cs: + * Linux/Extern.cs: + * Linux/Structs.cs: + Since libata, ATA/ATAPI commands should be sent using + libata's SCSI/ATA Translation Layer, so remove HDIO ioctls. + 2015-10-13 Natalia Portillo * Device/Constructor.cs: diff --git a/DiscImageChef.Devices/Linux/Enums.cs b/DiscImageChef.Devices/Linux/Enums.cs index b4853a180..093722720 100644 --- a/DiscImageChef.Devices/Linux/Enums.cs +++ b/DiscImageChef.Devices/Linux/Enums.cs @@ -148,15 +148,8 @@ namespace DiscImageChef.Devices.Linux enum LinuxIoctl : ulong { // SCSI IOCtls - SG_EMULATED_HOST = 0x2203, SG_GET_VERSION_NUM = 0x2282, SG_IO = 0x2285, - SG_GET_SCSI_ID = 0x2276, - - // ATA IOCtls - HDIO_DRIVE_CMD = 0x031F, - HDIO_DRIVE_TASK = 0x031E, - HDIO_DRIVE_TASKFILE = 0x031D } [Flags] diff --git a/DiscImageChef.Devices/Linux/Extern.cs b/DiscImageChef.Devices/Linux/Extern.cs index 48435277c..36263ff68 100644 --- a/DiscImageChef.Devices/Linux/Extern.cs +++ b/DiscImageChef.Devices/Linux/Extern.cs @@ -56,12 +56,6 @@ namespace DiscImageChef.Devices.Linux [DllImport("libc", EntryPoint="ioctl", SetLastError = true)] internal static extern int ioctlSg(int fd, LinuxIoctl request, ref sg_io_hdr_t value); - - [DllImport("libc", EntryPoint="ioctl", SetLastError = true)] - internal static extern int ioctlHdTaskfile(int fd, LinuxIoctl request, ref hd_drive_task_hdr value); - - [DllImport("libc", EntryPoint="ioctl", SetLastError = true)] - internal static extern int ioctlHdTask(int fd, LinuxIoctl request, ref byte[] value); } } diff --git a/DiscImageChef.Devices/Linux/Structs.cs b/DiscImageChef.Devices/Linux/Structs.cs index 86ebd3299..5ec21d690 100644 --- a/DiscImageChef.Devices/Linux/Structs.cs +++ b/DiscImageChef.Devices/Linux/Structs.cs @@ -70,39 +70,5 @@ namespace DiscImageChef.Devices.Linux public uint duration; /* [o] */ public SgInfo info; /* [o] */ } - - [StructLayout(LayoutKind.Sequential)] - struct hd_drive_task_hdr - { - public byte data; - public byte feature; - public byte sector_count; - public byte sector_number; - public byte low_cylinder; - public byte high_cylinder; - public byte device_head; - public byte command; - } - - [StructLayout(LayoutKind.Sequential)] - struct hd_drive_task_array - { - public byte command; - public byte features; - public byte sector_count; - public byte sector_number; - public byte low_cylinder; - public byte high_cylinder; - public byte device_head; - } - - [StructLayout(LayoutKind.Sequential)] - struct hd_drive_cmd - { - public byte command; - public byte sector; - public byte feature; - public byte nsector; - } } diff --git a/DiscImageChef.Interop/ChangeLog b/DiscImageChef.Interop/ChangeLog index 3b6d4028d..ac0504a4a 100644 --- a/DiscImageChef.Interop/ChangeLog +++ b/DiscImageChef.Interop/ChangeLog @@ -1,3 +1,8 @@ +2015-10-14 Natalia Portillo + + * DetectOS.cs: + Add code to detect if running under 32 or 64 bits. + 2015-10-13 Natalia Portillo * DiscImageChef.Interop.csproj: diff --git a/DiscImageChef.Interop/DetectOS.cs b/DiscImageChef.Interop/DetectOS.cs index 2745f222b..d88b350d3 100644 --- a/DiscImageChef.Interop/DetectOS.cs +++ b/DiscImageChef.Interop/DetectOS.cs @@ -184,5 +184,21 @@ namespace DiscImageChef.Interop } } } + + /// + /// Checks if the underlying runtime runs in 64-bit mode + /// + public static bool Is64Bit() + { + return IntPtr.Size == 8; + } + + /// + /// Checks if the underlying runtime runs in 32-bit mode + /// + public static bool Is32Bit() + { + return IntPtr.Size == 4; + } } } \ No newline at end of file