1 // 2 // Copyright (c) 2010-2019 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 8 using Antmicro.Renode.Utilities.Packets; 9 10 namespace Antmicro.Renode.Extensions.Utilities.USBIP 11 { 12 public struct URBHeader 13 { 14 [PacketField] 15 public URBCommand Command; 16 [PacketField] 17 public uint SequenceNumber; 18 [PacketField] 19 public ushort BusId; // in the documentation those two fields are called 'DeviceId' 20 [PacketField] 21 public ushort DeviceId; 22 [PacketField] 23 public URBDirection Direction; 24 [PacketField] 25 public uint EndpointNumber; 26 [PacketField] 27 public uint FlagsOrStatus; 28 ToStringAntmicro.Renode.Extensions.Utilities.USBIP.URBHeader29 public override string ToString() 30 { 31 return $"Command = {Command}, SequenceNumber = 0x{SequenceNumber:X}, BusId = 0x{BusId:X}, DeviceId = 0x{DeviceId:X}, Direction = {Direction}, EndpointNumber = 0x{EndpointNumber:X}, FlagsOrStatus = 0x{FlagsOrStatus:X}"; 32 } 33 } 34 35 public enum URBDirection : uint 36 { 37 Out = 0x0, 38 In = 0x1 39 } 40 41 public enum URBCommand: uint 42 { 43 URBRequest = 0x1, 44 Unlink = 0x2, 45 URBReply = 0x3, 46 UnlinkReply = 0x4, 47 } 48 } 49