XenevaOS
Loading...
Searching...
No Matches
Usb2HostController.h
Go to the documentation of this file.
1
18#ifndef _USB2_HOSTCONTROLLER_H_
19#define _USB2_HOSTCONTROLLER_H_
20
21#include <Protocol/UsbIo.h>
22
23#define EFI_USB2_HC_PROTOCOL_GUID \
24 { \
25 0x3e745226, 0x9818, 0x45b6, {0xa2, 0xac, 0xd7, 0xcd, 0xe, 0x8b, 0xa2, 0xbc } \
26 }
27
32
33
38
42#define USB_PORT_STAT_CONNECTION 0x0001
43#define USB_PORT_STAT_ENABLE 0x0002
44#define USB_PORT_STAT_SUSPEND 0x0004
45#define USB_PORT_STAT_OVERCURRENT 0x0008
46#define USB_PORT_STAT_RESET 0x0010
47#define USB_PORT_STAT_POWER 0x0100
48#define USB_PORT_STAT_LOW_SPEED 0x0200
49#define USB_PORT_STAT_HIGH_SPEED 0x0400
50#define USB_PORT_STAT_SUPER_SPEED 0x0800
51#define USB_PORT_STAT_OWNER 0x2000
52
56#define USB_PORT_STAT_C_CONNECTION 0x0001
57#define USB_PORT_STAT_C_ENABLE 0x0002
58#define USB_PORT_STAT_C_SUSPEND 0x0004
59#define USB_PORT_STAT_C_OVERCURRENT 0x0008
60#define USB_PORT_STAT_C_RESET 0x0010
61
62
80
81#define EFI_USB_SPEED_FULL 0x0000
82#define EFI_USB_SPEED_LOW 0x0001
83#define EFI_USB_SPEED_HIGH 0x0002
84#define EFI_USB_SPEED_SUPER 0x0003
85
90
91//
92// Protocol definitions
93//
94
110typedef
114 OUT UINT8 *MaxSpeed,
115 OUT UINT8 *PortNumber,
116 OUT UINT8 *Is64BitCapable
117 );
118
119#define EFI_USB_HC_RESET_GLOBAL 0x0001
120#define EFI_USB_HC_RESET_HOST_CONTROLLER 0x0002
121#define EFI_USB_HC_RESET_GLOBAL_WITH_DEBUG 0x0004
122#define EFI_USB_HC_RESET_HOST_WITH_DEBUG 0x0008
141typedef
145 IN UINT16 Attributes
146 );
147
182
196typedef
200 OUT EFI_USB_HC_STATE *State
201);
202
215typedef
219 IN EFI_USB_HC_STATE State
220 );
221
251typedef
255 IN UINT8 DeviceAddress,
256 IN UINT8 DeviceSpeed,
257 IN UINTN MaximumPacketLength,
258 IN EFI_USB_DEVICE_REQUEST *Request,
259 IN EFI_USB_DATA_DIRECTION TransferDirection,
260 IN OUT VOID *Data OPTIONAL,
261 IN OUT UINTN *DataLength OPTIONAL,
262 IN UINTN TimeOut,
264 OUT UINT32 *TransferResult
265 );
266
267#define EFI_USB_MAX_BULK_BUFFER_NUM 10
268
298typedef
302 IN UINT8 DeviceAddress,
303 IN UINT8 EndPointAddress,
304 IN UINT8 DeviceSpeed,
305 IN UINTN MaximumPacketLength,
306 IN UINT8 DataBuffersNumber,
308 IN OUT UINTN *DataLength,
309 IN OUT UINT8 *DataToggle,
310 IN UINTN TimeOut,
312 OUT UINT32 *TransferResult
313 );
314
347typedef
351 IN UINT8 DeviceAddress,
352 IN UINT8 EndPointAddress,
353 IN UINT8 DeviceSpeed,
354 IN UINTN MaxiumPacketLength,
355 IN BOOLEAN IsNewTransfer,
356 IN OUT UINT8 *DataToggle,
357 IN UINTN PollingInterval OPTIONAL,
358 IN UINTN DataLength OPTIONAL,
362 );
363
394typedef
398 IN UINT8 DeviceAddress,
399 IN UINT8 EndPointAddress,
400 IN UINT8 DeviceSpeed,
401 IN UINTN MaximumPacketLength,
402 IN OUT VOID *Data,
403 IN OUT UINTN *DataLength,
404 IN OUT UINT8 *DataToggle,
405 IN UINTN TimeOut,
407 OUT UINT32 *TransferResult
408 );
409
410#define EFI_USB_MAX_ISO_BUFFER_NUM 7
411#define EFI_USB_MAX_ISO_BUFFER_NUM1 2
412
470typedef
474 IN UINT8 DeviceAddress,
475 IN UINT8 EndPointAddress,
476 IN UINT8 DeviceSpeed,
477 IN UINTN MaximumPacketLength,
478 IN UINT8 DataBuffersNumber,
480 IN UINTN DataLength,
482 OUT UINT32 *TransferResult
483 );
484
545typedef
549 IN UINT8 DeviceAddress,
550 IN UINT8 EndPointAddress,
551 IN UINT8 DeviceSpeed,
552 IN UINTN MaximumPacketLength,
553 IN UINT8 DataBuffersNumber,
555 IN UINTN DataLength,
557 IN EFI_ASYNC_USB_TRANSFER_CALLBACK IsochronousCallBack,
559 );
560
574typedef
578 IN UINT8 PortNumber,
579 OUT EFI_USB_PORT_STATUS *PortStatus
580 );
581
595typedef
599 IN UINT8 PortNumber,
600 IN EFI_USB_PORT_FEATURE PortFeature
601 );
602
616typedef
620 IN UINT8 PortNumber,
621 IN EFI_USB_PORT_FEATURE PortFeature
622 );
623
661
663
664#endif
UINT64 UINTN
Definition ProcessorBind.h:118
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
#define IN
Definition Base.h:347
#define OUT
Definition Base.h:352
#define OPTIONAL
Definition Base.h:358
RETURN_STATUS EFI_STATUS
Definition UefiBaseType.h:33
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_ASYNC_INTERRUPT_TRANSFER)(IN EFI_USB2_HC_PROTOCOL *This, IN UINT8 DeviceAddress, IN UINT8 EndPointAddress, IN UINT8 DeviceSpeed, IN UINTN MaxiumPacketLength, IN BOOLEAN IsNewTransfer, IN OUT UINT8 *DataToggle, IN UINTN PollingInterval OPTIONAL, IN UINTN DataLength OPTIONAL, IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator OPTIONAL, IN EFI_ASYNC_USB_TRANSFER_CALLBACK CallBackFunction OPTIONAL, IN VOID *Context OPTIONAL)
Definition Usb2HostController.h:349
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_SYNC_INTERRUPT_TRANSFER)(IN EFI_USB2_HC_PROTOCOL *This, IN UINT8 DeviceAddress, IN UINT8 EndPointAddress, IN UINT8 DeviceSpeed, IN UINTN MaximumPacketLength, IN OUT VOID *Data, IN OUT UINTN *DataLength, IN OUT UINT8 *DataToggle, IN UINTN TimeOut, IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator, OUT UINT32 *TransferResult)
Definition Usb2HostController.h:396
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_GET_CAPABILITY)(IN EFI_USB2_HC_PROTOCOL *This, OUT UINT8 *MaxSpeed, OUT UINT8 *PortNumber, OUT UINT8 *Is64BitCapable)
Definition Usb2HostController.h:112
EFI_GUID gEfiUsb2HcProtocolGuid
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_ASYNC_ISOCHRONOUS_TRANSFER)(IN EFI_USB2_HC_PROTOCOL *This, IN UINT8 DeviceAddress, IN UINT8 EndPointAddress, IN UINT8 DeviceSpeed, IN UINTN MaximumPacketLength, IN UINT8 DataBuffersNumber, IN OUT VOID *Data[EFI_USB_MAX_ISO_BUFFER_NUM], IN UINTN DataLength, IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator, IN EFI_ASYNC_USB_TRANSFER_CALLBACK IsochronousCallBack, IN VOID *Context OPTIONAL)
Definition Usb2HostController.h:547
EFI_USB_PORT_FEATURE
Definition Usb2HostController.h:68
@ EfiUsbPortPower
Definition Usb2HostController.h:72
@ EfiUsbPortOverCurrentChange
Definition Usb2HostController.h:77
@ EfiUsbPortSuspendChange
Definition Usb2HostController.h:76
@ EfiUsbPortSuspend
Definition Usb2HostController.h:70
@ EfiUsbPortReset
Definition Usb2HostController.h:71
@ EfiUsbPortResetChange
Definition Usb2HostController.h:78
@ EfiUsbPortEnableChange
Definition Usb2HostController.h:75
@ EfiUsbPortEnable
Definition Usb2HostController.h:69
@ EfiUsbPortConnectChange
Definition Usb2HostController.h:74
@ EfiUsbPortOwner
Definition Usb2HostController.h:73
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_GET_ROOTHUB_PORT_STATUS)(IN EFI_USB2_HC_PROTOCOL *This, IN UINT8 PortNumber, OUT EFI_USB_PORT_STATUS *PortStatus)
Definition Usb2HostController.h:576
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_RESET)(IN EFI_USB2_HC_PROTOCOL *This, IN UINT16 Attributes)
Definition Usb2HostController.h:143
#define EFI_USB_MAX_ISO_BUFFER_NUM
Definition Usb2HostController.h:410
#define EFI_USB_MAX_BULK_BUFFER_NUM
Definition Usb2HostController.h:267
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_CLEAR_ROOTHUB_PORT_FEATURE)(IN EFI_USB2_HC_PROTOCOL *This, IN UINT8 PortNumber, IN EFI_USB_PORT_FEATURE PortFeature)
Definition Usb2HostController.h:618
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_SET_STATE)(IN EFI_USB2_HC_PROTOCOL *This, IN EFI_USB_HC_STATE State)
Definition Usb2HostController.h:217
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_BULK_TRANSFER)(IN EFI_USB2_HC_PROTOCOL *This, IN UINT8 DeviceAddress, IN UINT8 EndPointAddress, IN UINT8 DeviceSpeed, IN UINTN MaximumPacketLength, IN UINT8 DataBuffersNumber, IN OUT VOID *Data[EFI_USB_MAX_BULK_BUFFER_NUM], IN OUT UINTN *DataLength, IN OUT UINT8 *DataToggle, IN UINTN TimeOut, IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator, OUT UINT32 *TransferResult)
Definition Usb2HostController.h:300
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_CONTROL_TRANSFER)(IN EFI_USB2_HC_PROTOCOL *This, IN UINT8 DeviceAddress, IN UINT8 DeviceSpeed, IN UINTN MaximumPacketLength, IN EFI_USB_DEVICE_REQUEST *Request, IN EFI_USB_DATA_DIRECTION TransferDirection, IN OUT VOID *Data OPTIONAL, IN OUT UINTN *DataLength OPTIONAL, IN UINTN TimeOut, IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator, OUT UINT32 *TransferResult)
Definition Usb2HostController.h:253
EFI_USB_HC_STATE
Definition Usb2HostController.h:151
@ EfiUsbHcStateHalt
Definition Usb2HostController.h:152
@ EfiUsbHcStateOperational
Definition Usb2HostController.h:162
@ EfiUsbHcStateSuspend
Definition Usb2HostController.h:170
@ EfiUsbHcStateMaximum
Maximum value for enumration value of HC status.
Definition Usb2HostController.h:180
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_ISOCHRONOUS_TRANSFER)(IN EFI_USB2_HC_PROTOCOL *This, IN UINT8 DeviceAddress, IN UINT8 EndPointAddress, IN UINT8 DeviceSpeed, IN UINTN MaximumPacketLength, IN UINT8 DataBuffersNumber, IN OUT VOID *Data[EFI_USB_MAX_ISO_BUFFER_NUM], IN UINTN DataLength, IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator, OUT UINT32 *TransferResult)
Definition Usb2HostController.h:472
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_GET_STATE)(IN EFI_USB2_HC_PROTOCOL *This, OUT EFI_USB_HC_STATE *State)
Definition Usb2HostController.h:198
EFI_STATUS(EFIAPI * EFI_USB2_HC_PROTOCOL_SET_ROOTHUB_PORT_FEATURE)(IN EFI_USB2_HC_PROTOCOL *This, IN UINT8 PortNumber, IN EFI_USB_PORT_FEATURE PortFeature)
Definition Usb2HostController.h:597
EFI_USB_DATA_DIRECTION
Definition UsbIo.h:50
EFI_STATUS(EFIAPI * EFI_ASYNC_USB_TRANSFER_CALLBACK)(IN VOID *Data, IN UINTN DataLength, IN VOID *Context, IN UINT32 Status)
Definition UsbIo.h:86
#define VOID
Definition acefi.h:190
UINT32 void * Context
Definition acevents.h:322
unsigned short UINT16
Definition actypes.h:237
unsigned char BOOLEAN
Definition actypes.h:235
unsigned char UINT8
Definition actypes.h:236
Definition Usb2HostController.h:86
UINT8 TranslatorHubAddress
device address
Definition Usb2HostController.h:87
UINT8 TranslatorPortNumber
the port number of the hub that device is connected to.
Definition Usb2HostController.h:88
Definition Usb2HostController.h:34
UINT16 PortChangeStatus
Contains current port status change bitmap.
Definition Usb2HostController.h:36
UINT16 PortStatus
Contains current port status bitmap.
Definition Usb2HostController.h:35
Definition Base.h:281
Definition Usb.h:97
Definition Usb2HostController.h:632
EFI_USB2_HC_PROTOCOL_GET_ROOTHUB_PORT_STATUS GetRootHubPortStatus
Definition Usb2HostController.h:643
EFI_USB2_HC_PROTOCOL_SET_STATE SetState
Definition Usb2HostController.h:636
EFI_USB2_HC_PROTOCOL_SET_ROOTHUB_PORT_FEATURE SetRootHubPortFeature
Definition Usb2HostController.h:644
EFI_USB2_HC_PROTOCOL_SYNC_INTERRUPT_TRANSFER SyncInterruptTransfer
Definition Usb2HostController.h:640
EFI_USB2_HC_PROTOCOL_ASYNC_INTERRUPT_TRANSFER AsyncInterruptTransfer
Definition Usb2HostController.h:639
EFI_USB2_HC_PROTOCOL_ISOCHRONOUS_TRANSFER IsochronousTransfer
Definition Usb2HostController.h:641
UINT16 MinorRevision
Definition Usb2HostController.h:659
EFI_USB2_HC_PROTOCOL_ASYNC_ISOCHRONOUS_TRANSFER AsyncIsochronousTransfer
Definition Usb2HostController.h:642
EFI_USB2_HC_PROTOCOL_GET_STATE GetState
Definition Usb2HostController.h:635
EFI_USB2_HC_PROTOCOL_CLEAR_ROOTHUB_PORT_FEATURE ClearRootHubPortFeature
Definition Usb2HostController.h:645
UINT16 MajorRevision
Definition Usb2HostController.h:652
EFI_USB2_HC_PROTOCOL_GET_CAPABILITY GetCapability
Definition Usb2HostController.h:633
EFI_USB2_HC_PROTOCOL_RESET Reset
Definition Usb2HostController.h:634
EFI_USB2_HC_PROTOCOL_CONTROL_TRANSFER ControlTransfer
Definition Usb2HostController.h:637
EFI_USB2_HC_PROTOCOL_BULK_TRANSFER BulkTransfer
Definition Usb2HostController.h:638