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 System;
9 using Antmicro.Renode.Utilities.Packets;
10 using Antmicro.Renode.Core.USB;
11 
12 namespace Antmicro.Renode.Extensions.Utilities.USBIP
13 {
14     // the actual packet
15     // is prepended with
16     // the USBIP.URBHeader
17     public struct URBRequest
18     {
19         [PacketField]
20         public uint TransferBufferLength;
21         [PacketField]
22         public uint StartFrame;
23         [PacketField]
24         public uint NumberOfPackets;
25         [PacketField]
26         public uint Interval;
27         [PacketField]
28         public ulong Setup;
29 
ToStringAntmicro.Renode.Extensions.Utilities.USBIP.URBRequest30         public override string ToString()
31         {
32             var bytes = BitConverter.GetBytes(Setup);
33             Array.Reverse(bytes, 0, bytes.Length);
34             var decodedSetup = Packet.Decode<SetupPacket>(bytes);
35             return $"TransferBufferLength = 0x{TransferBufferLength:X}, StartFrame = 0x{StartFrame:X}, NumberOfPackets = 0x{NumberOfPackets:X}, Interval = 0x{Interval:X}, Setup = 0x{Setup:X} [{decodedSetup}]";
36         }
37     }
38 }
39