28#define CONFIG_DESC_ATTRIBUTES (BIT7 | BIT6)
30#define MAX_PACKET_SIZE_BULK 512
88 CONFIG_DESC_ATTRIBUTES,
93 USB_DESC_TYPE_INTERFACE,
107 USB_DESC_TYPE_ENDPOINT,
110 MAX_PACKET_SIZE_BULK,
115 USB_DESC_TYPE_ENDPOINT,
118 MAX_PACKET_SIZE_BULK,
133 ASSERT (NewEntry !=
NULL);
135 NewEntry->Buffer = Buffer;
136 NewEntry->BufferSize = Size;
141 gBS->SignalEvent (mReceiveEvent);
148 IN UINT8 EndpointIndex
159FastbootTransportUsbStart (
165 mReceiveEvent = ReceiveEvent;
168 Responses = &mGetConfigDescriptorResponse;
172 return mUsbDevice->Start (&mDeviceDescriptor, (VOID **)&Responses, DataReceived, DataSent);
182FastbootTransportUsbStop (
196FastbootTransportUsbSend (
203 return mUsbDevice->Send (1, BufferSize, Buffer);
221FastbootTransportUsbReceive (
229 return EFI_NOT_READY;
234 *BufferSize = Entry->BufferSize;
235 *Buffer = Entry->Buffer;
244 FastbootTransportUsbStart,
245 FastbootTransportUsbStop,
246 FastbootTransportUsbSend,
247 FastbootTransportUsbReceive
251FastbootTransportUsbEntryPoint (
259 Status =
gBS->LocateProtocol (&gUsbDeviceProtocolGuid,
NULL, (VOID **)&mUsbDevice);
260 if (EFI_ERROR (Status)) {
264 Status =
gBS->InstallProtocolInterface (
266 &gAndroidFastbootTransportProtocolGuid,
BOOLEAN EFIAPI IsListEmpty(IN CONST LIST_ENTRY *ListHead)
LIST_ENTRY *EFIAPI GetFirstNode(IN CONST LIST_ENTRY *List)
LIST_ENTRY *EFIAPI RemoveEntryList(IN CONST LIST_ENTRY *Entry)
LIST_ENTRY *EFIAPI InitializeListHead(IN OUT LIST_ENTRY *ListHead)
LIST_ENTRY *EFIAPI InsertTailList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
VOID EFIAPI FreePool(IN VOID *Buffer)
#define FixedPcdGet32(TokenName)
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)