1 //
2 // Copyright (c) 2010-2018 Antmicro
3 // Copyright (c) 2011-2015 Realtime Embedded
4 //
5 // This file is licensed under the MIT License.
6 // Full license text is available in 'licenses/MIT.txt'.
7 //
8 using System;
9 using Antmicro.Renode.UserInterface;
10 
11 namespace Antmicro.Renode.Peripherals.USBDeprecated
12 {
13     [Icon("usb")]
14     public interface IUSBPeripheral : IPeripheral
15     {
ClearFeature(USBPacket packet, USBSetupPacket setupPacket)16         void ClearFeature(USBPacket packet, USBSetupPacket setupPacket);
17 
GetConfiguration()18         byte[] GetConfiguration();
19 
SetAddress(uint address)20         void SetAddress(uint address);
21 
GetInterface(USBPacket packet, USBSetupPacket setupPacket)22         byte[] GetInterface(USBPacket packet, USBSetupPacket setupPacket);
23 
GetStatus(USBPacket packet, USBSetupPacket setupPacket)24         byte[] GetStatus(USBPacket packet, USBSetupPacket setupPacket);
25 
SetConfiguration(USBPacket packet, USBSetupPacket setupPacket)26         void SetConfiguration(USBPacket packet, USBSetupPacket setupPacket);
27 
SetDescriptor(USBPacket packet, USBSetupPacket setupPacket)28         void SetDescriptor(USBPacket packet, USBSetupPacket setupPacket);
29 
SetFeature(USBPacket packet, USBSetupPacket setupPacket)30         void SetFeature(USBPacket packet, USBSetupPacket setupPacket);
31 
SetInterface(USBPacket packet, USBSetupPacket setupPacket)32         void SetInterface(USBPacket packet, USBSetupPacket setupPacket);
33 
ProcessVendorGet(USBPacket packet, USBSetupPacket setupPacket)34         byte[] ProcessVendorGet(USBPacket packet, USBSetupPacket setupPacket);
35 
ProcessVendorSet(USBPacket packet, USBSetupPacket setupPacket)36         void ProcessVendorSet(USBPacket packet, USBSetupPacket setupPacket);
37 
ProcessClassGet(USBPacket packet, USBSetupPacket setupPacket)38         byte[] ProcessClassGet(USBPacket packet, USBSetupPacket setupPacket);
39 
ProcessClassSet(USBPacket packet, USBSetupPacket setupPacket)40         void ProcessClassSet(USBPacket packet, USBSetupPacket setupPacket);
41 
SetDataToggle(byte endpointNumber)42         void SetDataToggle(byte endpointNumber);
43 
CleanDataToggle(byte endpointNumber)44         void CleanDataToggle(byte endpointNumber);
45 
GetDataToggle(byte endpointNumber)46         bool GetDataToggle(byte endpointNumber);
47 
ToggleDataToggle(byte endpointNumber)48         void ToggleDataToggle(byte endpointNumber);
49 
GetAddress()50         uint GetAddress();
51 
GetSpeed()52         USBDeviceSpeed GetSpeed();
53 
WriteInterrupt(USBPacket packet)54         byte[] WriteInterrupt(USBPacket packet);
55 
GetDataBulk(USBPacket packet)56         byte[] GetDataBulk(USBPacket packet);
57 
GetDataControl(USBPacket packet)58         byte[] GetDataControl(USBPacket packet);
59 
GetTransferStatus()60         byte GetTransferStatus();
61 
GetDescriptor(USBPacket packet, USBSetupPacket setupPacket)62         byte[] GetDescriptor(USBPacket packet, USBSetupPacket setupPacket);
63 
WriteDataBulk(USBPacket packet)64         void WriteDataBulk(USBPacket packet);
65 
WriteDataControl(USBPacket packet)66         void WriteDataControl(USBPacket packet);
67 
68         event Action <uint> SendInterrupt ;
69 
70         event Action <uint> SendPacket ;
71     }
72 }
73