Files
Aaru/DiscImageChef.Devices/Remote/Structs.cs

71 lines
1.9 KiB
C#

using System.Runtime.InteropServices;
namespace DiscImageChef.Devices.Remote
{
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct DicPacketHeader
{
public ulong id;
public uint len;
public byte version;
public DicPacketType packetType;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public readonly byte[] spare;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct DicPacketHello
{
public DicPacketHeader hdr;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
public string application;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
public string version;
public byte maxProtocol;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public readonly byte[] spare;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string sysname;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string release;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string machine;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct DicPacketCommandListDevices
{
public DicPacketHeader hdr;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct DicPacketResponseListDevices
{
public readonly DicPacketHeader hdr;
public readonly ushort devices;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct DicPacketNop
{
public DicPacketHeader hdr;
public byte reasonCode;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public readonly byte[] spare;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string reason;
public int errno;
}
}