diff --git a/Aaru.Devices/FreeBSD/Command.cs b/Aaru.Devices/FreeBSD/Command.cs index 4c194901c..7dbe9db47 100644 --- a/Aaru.Devices/FreeBSD/Command.cs +++ b/Aaru.Devices/FreeBSD/Command.cs @@ -40,7 +40,7 @@ using static Aaru.Devices.FreeBSD.Extern; namespace Aaru.Devices.FreeBSD { - [SuppressMessage("ReSharper", "BitwiseOperatorOnEnumWithoutFlags")] + [SuppressMessage("ReSharper", "BitwiseOperatorOnEnumWithoutFlags"), Obsolete] internal static class Command { const int CAM_MAX_CDBLEN = 16; @@ -58,6 +58,7 @@ namespace Aaru.Devices.FreeBSD /// True if SCSI error returned non-OK status and contains SCSI /// sense /// + [Obsolete] internal static int SendScsiCommand64(IntPtr dev, byte[] cdb, ref byte[] buffer, out byte[] senseBuffer, uint timeout, CcbFlags direction, out double duration, out bool sense) { @@ -176,6 +177,7 @@ namespace Aaru.Devices.FreeBSD /// True if SCSI error returned non-OK status and contains SCSI /// sense /// + [Obsolete] internal static int SendScsiCommand(IntPtr dev, byte[] cdb, ref byte[] buffer, out byte[] senseBuffer, uint timeout, CcbFlags direction, out double duration, out bool sense) { @@ -284,6 +286,7 @@ namespace Aaru.Devices.FreeBSD /// Converts ATA protocol to CAM flags /// ATA protocol /// CAM flags + [Obsolete] static CcbFlags AtaProtocolToCamFlags(AtaProtocol protocol) { switch(protocol) @@ -312,6 +315,7 @@ namespace Aaru.Devices.FreeBSD /// Registers to send to drive /// Registers returned by drive /// ATA protocol to use + [Obsolete] internal static int SendAtaCommand(IntPtr dev, AtaRegistersChs registers, out AtaErrorRegistersChs errorRegisters, AtaProtocol protocol, ref byte[] buffer, uint timeout, out double duration, out bool sense) @@ -414,6 +418,7 @@ namespace Aaru.Devices.FreeBSD /// Registers to send to drive /// Registers returned by drive /// ATA protocol to use + [Obsolete] internal static int SendAtaCommand(IntPtr dev, AtaRegistersLba28 registers, out AtaErrorRegistersLba28 errorRegisters, AtaProtocol protocol, ref byte[] buffer, uint timeout, out double duration, out bool sense) @@ -516,6 +521,7 @@ namespace Aaru.Devices.FreeBSD /// Registers to send to drive /// Registers returned by drive /// ATA protocol to use + [Obsolete] internal static int SendAtaCommand(IntPtr dev, AtaRegistersLba48 registers, out AtaErrorRegistersLba48 errorRegisters, AtaProtocol protocol, ref byte[] buffer, uint timeout, out double duration, out bool sense) diff --git a/Aaru.Devices/FreeBSD/Enums.cs b/Aaru.Devices/FreeBSD/Enums.cs index ae036d564..d162786b4 100644 --- a/Aaru.Devices/FreeBSD/Enums.cs +++ b/Aaru.Devices/FreeBSD/Enums.cs @@ -35,7 +35,7 @@ using System; namespace Aaru.Devices.FreeBSD { - [Flags] + [Flags, Obsolete] internal enum FileFlags { /// O_RDONLY @@ -78,7 +78,7 @@ namespace Aaru.Devices.FreeBSD CloseOnExec = 0x00100000 } - [Flags] + [Flags, Obsolete] internal enum CamAtaIoFlags : byte { /// 48-bit command @@ -94,7 +94,7 @@ namespace Aaru.Devices.FreeBSD } /// XPT Opcodes for xpt_action - [Flags] + [Flags, Obsolete] internal enum XptOpcode { // Function code flags are bits greater than 0xff @@ -201,18 +201,20 @@ namespace Aaru.Devices.FreeBSD XptVunique = 0x80 } + [Obsolete] internal enum CcbDevMatchStatus { CamDevMatchLast, CamDevMatchMore, CamDevMatchListChanged, CamDevMatchSizeError, CamDevMatchError } + [Obsolete] internal enum DevMatchType { DevMatchPeriph = 0, DevMatchDevice, DevMatchBus } - [Flags] + [Flags, Obsolete] internal enum PeriphPatternFlags { PeriphMatchNone = 0x000, PeriphMatchPath = 0x001, PeriphMatchTarget = 0x002, @@ -221,7 +223,7 @@ namespace Aaru.Devices.FreeBSD // PERIPH_MATCH_ANY = 0x01f } - [Flags] + [Flags, Obsolete] internal enum DevPatternFlags { DevMatchNone = 0x000, DevMatchPath = 0x001, DevMatchTarget = 0x002, @@ -230,7 +232,7 @@ namespace Aaru.Devices.FreeBSD // DEV_MATCH_ANY = 0x00f } - [Flags] + [Flags, Obsolete] internal enum BusPatternFlags { BusMatchNone = 0x000, BusMatchPath = 0x001, BusMatchName = 0x002, @@ -239,12 +241,13 @@ namespace Aaru.Devices.FreeBSD // BUS_MATCH_ANY = 0x00f } - [Flags] + [Flags, Obsolete] internal enum DevResultFlags { DevResultNoflag = 0x00, DevResultUnconfigured = 0x01 } + [Obsolete] internal enum CamProto { ProtoUnknown, ProtoUnspecified, @@ -271,20 +274,21 @@ namespace Aaru.Devices.FreeBSD ProtoMmcsd } - [Flags] + [Flags, Obsolete] internal enum MmcCardFeatures { CardFeatureMemory = 0x1, CardFeatureSdhc = 0x1 << 1, CardFeatureSdio = 0x1 << 2, CardFeatureSd20 = 0x1 << 3, CardFeatureMmc = 0x1 << 4, CardFeature18V = 0x1 << 5 } + [Obsolete] internal enum CamGenerations : uint { CamBusGeneration = 0x00, CamTargetGeneration = 0x01, CamDevGeneration = 0x02, CamPeriphGeneration = 0x03 } - [Flags] + [Flags, Obsolete] internal enum DevPosType { CamDevPosNone = 0x000, CamDevPosBus = 0x001, CamDevPosTarget = 0x002, @@ -294,12 +298,13 @@ namespace Aaru.Devices.FreeBSD CamDevPosEdt = 0x100, CamDevPosPdrv = 0x200 } + [Obsolete] internal enum FreebsdIoctl : uint { Camiocommand = 0xC4D81802 } - [Flags] + [Flags, Obsolete] internal enum CcbFlags : uint { /// The CDB field is a pointer @@ -389,6 +394,7 @@ namespace Aaru.Devices.FreeBSD CamUnlocked = 0x80000000 } + [Obsolete] internal enum CamStatus : uint { /// CCB request is in progress diff --git a/Aaru.Devices/FreeBSD/Extern.cs b/Aaru.Devices/FreeBSD/Extern.cs index f47c1f26b..0c4b4c753 100644 --- a/Aaru.Devices/FreeBSD/Extern.cs +++ b/Aaru.Devices/FreeBSD/Extern.cs @@ -36,6 +36,7 @@ using System.Runtime.InteropServices; namespace Aaru.Devices.FreeBSD { + [Obsolete] internal static class Extern { [DllImport("libc", CharSet = CharSet.Ansi, SetLastError = true)] diff --git a/Aaru.Devices/FreeBSD/ListDevices.cs b/Aaru.Devices/FreeBSD/ListDevices.cs index 0f88f9656..17198fb64 100644 --- a/Aaru.Devices/FreeBSD/ListDevices.cs +++ b/Aaru.Devices/FreeBSD/ListDevices.cs @@ -42,10 +42,12 @@ using Marshal = System.Runtime.InteropServices.Marshal; namespace Aaru.Devices.FreeBSD { + [Obsolete] internal static class ListDevices { /// Gets a list of all known storage devices on FreeBSD /// List of devices + [Obsolete] internal static DeviceInfo[] GetList() { string[] passDevices = Directory.GetFiles("/dev/", "pass*", SearchOption.TopDirectoryOnly); diff --git a/Aaru.Devices/FreeBSD/Structs.cs b/Aaru.Devices/FreeBSD/Structs.cs index 30704ebc6..ac08fb5e6 100644 --- a/Aaru.Devices/FreeBSD/Structs.cs +++ b/Aaru.Devices/FreeBSD/Structs.cs @@ -45,7 +45,7 @@ using target_id_t = System.UInt32; namespace Aaru.Devices.FreeBSD { - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct AtaCmd { public CamAtaIoFlags flags; @@ -64,7 +64,7 @@ namespace Aaru.Devices.FreeBSD public byte control; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct AtaRes { public CamAtaIoFlags flags; @@ -81,7 +81,7 @@ namespace Aaru.Devices.FreeBSD public byte sector_count_exp; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CamPinfo { public uint priority; @@ -89,7 +89,7 @@ namespace Aaru.Devices.FreeBSD public int index; } - [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct ListEntry { /// LIST_ENTRY(ccb_hdr)=le->*le_next @@ -98,14 +98,14 @@ namespace Aaru.Devices.FreeBSD public IntPtr LePrev; } - [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct SlistEntry { /// SLIST_ENTRY(ccb_hdr)=sle->*sle_next public IntPtr SleNext; } - [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct TailqEntry { /// TAILQ_ENTRY(ccb_hdr)=tqe->*tqe_next @@ -114,14 +114,14 @@ namespace Aaru.Devices.FreeBSD public IntPtr TqePrev; } - [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct StailqEntry { /// STAILQ_ENTRY(ccb_hdr)=stqe->*stqe_next public IntPtr StqeNext; } - [StructLayout(LayoutKind.Explicit), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Explicit), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CamqEntry { [FieldOffset(0)] @@ -134,7 +134,7 @@ namespace Aaru.Devices.FreeBSD public StailqEntry stqe; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct Timeval { public long tv_sec; @@ -142,7 +142,7 @@ namespace Aaru.Devices.FreeBSD public IntPtr tv_usec; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CcbQosArea { public Timeval etime; @@ -150,7 +150,7 @@ namespace Aaru.Devices.FreeBSD public UIntPtr periph_data; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CcbHdr { public CamPinfo pinfo; @@ -176,7 +176,7 @@ namespace Aaru.Devices.FreeBSD public Timeval softtimeout; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct ScsiSenseData { const int SSD_FULL_SIZE = 252; @@ -186,7 +186,7 @@ namespace Aaru.Devices.FreeBSD } /// SCSI I/O Request CCB used for the XPT_SCSI_IO and XPT_CONT_TARGET_IO function codes. - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CcbScsiio { public CcbHdr ccb_h; @@ -232,7 +232,7 @@ namespace Aaru.Devices.FreeBSD } /// SCSI I/O Request CCB used for the XPT_SCSI_IO and XPT_CONT_TARGET_IO function codes. - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CcbScsiio64 { public CcbHdr ccb_h; @@ -279,7 +279,7 @@ namespace Aaru.Devices.FreeBSD } /// ATA I/O Request CCB used for the XPT_ATA_IO function code. - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CcbAtaio { public CcbHdr ccb_h; @@ -301,7 +301,7 @@ namespace Aaru.Devices.FreeBSD public uint unused; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct NvmeCommand { readonly ushort opc_fuse_rsvd1; @@ -340,7 +340,7 @@ namespace Aaru.Devices.FreeBSD public byte Rsvd1 => (byte)(opc_fuse_rsvd1 & 0x3F); } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct NvmeStatus { readonly ushort status; @@ -364,7 +364,7 @@ namespace Aaru.Devices.FreeBSD public byte Dnr => (byte)(status & 0x1); } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct NvmeCompletion { /// command-specific @@ -386,7 +386,7 @@ namespace Aaru.Devices.FreeBSD } /// NVMe I/O Request CCB used for the XPT_NVME_IO and XPT_NVME_ADMIN function codes. - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CcbNvmeio { public CcbHdr ccb_h; @@ -406,7 +406,7 @@ namespace Aaru.Devices.FreeBSD public ushort unused; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct PeriphMatchPattern { const int DEV_IDLEN = 16; @@ -420,7 +420,7 @@ namespace Aaru.Devices.FreeBSD public PeriphPatternFlags flags; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct DeviceIdMatchPattern { public byte id_len; @@ -428,7 +428,7 @@ namespace Aaru.Devices.FreeBSD public byte[] id; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct ScsiStaticInquiryPattern { const int SID_VENDOR_SIZE = 8; @@ -444,7 +444,7 @@ namespace Aaru.Devices.FreeBSD public byte[] revision; } - [StructLayout(LayoutKind.Explicit), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Explicit), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct DeviceMatchPatternData { [FieldOffset(0)] @@ -453,7 +453,7 @@ namespace Aaru.Devices.FreeBSD public DeviceIdMatchPattern devid_pat; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct DeviceMatchPattern { public uint path_id; @@ -463,7 +463,7 @@ namespace Aaru.Devices.FreeBSD public DeviceMatchPatternData data; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct BusMatchPattern { const int DEV_IDLEN = 16; @@ -476,7 +476,7 @@ namespace Aaru.Devices.FreeBSD readonly BusPatternFlags flags; } - [StructLayout(LayoutKind.Explicit), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Explicit), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct MatchPattern { [FieldOffset(0)] @@ -487,14 +487,14 @@ namespace Aaru.Devices.FreeBSD public BusMatchPattern bus_pattern; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct DevMatchPattern { public DevMatchType type; public MatchPattern pattern; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct PeriphMatchResult { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] @@ -505,7 +505,7 @@ namespace Aaru.Devices.FreeBSD public lun_id_t target_lun; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct MmcCid { public uint mid; @@ -519,7 +519,7 @@ namespace Aaru.Devices.FreeBSD public byte fwrev; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct MmcParams { /// Card model @@ -552,7 +552,7 @@ namespace Aaru.Devices.FreeBSD public byte sdio_func_count; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct DeviceMatchResult { public path_id_t path_id; @@ -567,7 +567,7 @@ namespace Aaru.Devices.FreeBSD public MmcParams mmc_ident_data; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct BusMatchResult { public path_id_t path_id; @@ -578,7 +578,7 @@ namespace Aaru.Devices.FreeBSD public uint bus_id; } - [StructLayout(LayoutKind.Explicit), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Explicit), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct MatchResult { [FieldOffset(0)] @@ -589,14 +589,14 @@ namespace Aaru.Devices.FreeBSD public BusMatchResult bus_result; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct DevMatchResult { public DevMatchType type; public MatchResult result; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CcbDmCookie { public IntPtr bus; @@ -606,7 +606,7 @@ namespace Aaru.Devices.FreeBSD public IntPtr pdrv; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CcbDevPosition { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] @@ -615,7 +615,7 @@ namespace Aaru.Devices.FreeBSD public CcbDmCookie cookie; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CcbDevMatch { public CcbHdr ccb_h; @@ -635,7 +635,7 @@ namespace Aaru.Devices.FreeBSD public CcbDevPosition pos; } - [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CamDevice { const int MAXPATHLEN = 1024; @@ -690,7 +690,7 @@ namespace Aaru.Devices.FreeBSD public int Fd; } - [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + [StructLayout(LayoutKind.Sequential), SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), Obsolete] internal struct CcbGetdev { public CcbHdr ccb_h;