]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Bus/Usb/UsbBot/Dxe/bot.h
1) Initialize gBS, gST, gImageHandle in UefiBootServicesTableLib.c to NULL
[mirror_edk2.git] / EdkModulePkg / Bus / Usb / UsbBot / Dxe / bot.h
CommitLineData
878ddf1f 1/*++\r
2\r
4d1fe68e 3Copyright (c) 2006, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
878ddf1f 11\r
12Module Name:\r
13\r
14 BOT.h\r
15\r
16Abstract:\r
17\r
18--*/\r
19\r
20#ifndef _BOT_H\r
21#define _BOT_H\r
22\r
23\r
f0ec738d 24#include <IndustryStandard/Usb.h>\r
4d1fe68e 25extern UINT32 gBOTDebugLevel;\r
26extern UINT32 gBOTErrorLevel;\r
27#define MASS_STORAGE_CLASS 0x08\r
878ddf1f 28\r
29#pragma pack(1)\r
30//\r
31// Bulk Only device protocol\r
32//\r
33typedef struct {\r
34 UINT32 dCBWSignature;\r
35 UINT32 dCBWTag;\r
36 UINT32 dCBWDataTransferLength;\r
37 UINT8 bmCBWFlags;\r
38 UINT8 bCBWLUN;\r
39 UINT8 bCBWCBLength;\r
40 UINT8 CBWCB[16];\r
41} CBW;\r
42\r
43typedef struct {\r
44 UINT32 dCSWSignature;\r
45 UINT32 dCSWTag;\r
46 UINT32 dCSWDataResidue;\r
47 UINT8 bCSWStatus;\r
48} CSW;\r
49\r
50#pragma pack()\r
51\r
52#define USB_BOT_DEVICE_SIGNATURE EFI_SIGNATURE_32 ('u', 'b', 'o', 't')\r
53\r
54typedef struct {\r
55 UINTN Signature;\r
56 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
57 EFI_USB_ATAPI_PROTOCOL UsbAtapiProtocol;\r
58 EFI_USB_IO_PROTOCOL *UsbIo;\r
59 EFI_USB_INTERFACE_DESCRIPTOR *InterfaceDescriptor;\r
60 EFI_USB_ENDPOINT_DESCRIPTOR *BulkInEndpointDescriptor;\r
61 EFI_USB_ENDPOINT_DESCRIPTOR *BulkOutEndpointDescriptor;\r
62 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
63} USB_BOT_DEVICE;\r
64\r
65#define USB_BOT_DEVICE_FROM_THIS(a) \\r
66 CR(a, USB_BOT_DEVICE, UsbAtapiProtocol, USB_BOT_DEVICE_SIGNATURE)\r
67\r
68//\r
69// Status code, see Usb Bot device spec\r
70//\r
71#define CSWSIG 0x53425355\r
72#define CBWSIG 0x43425355\r
73\r
74//\r
75// Global Variables\r
76//\r
77extern EFI_DRIVER_BINDING_PROTOCOL gUsbBotDriverBinding;\r
78extern EFI_COMPONENT_NAME_PROTOCOL gUsbBotComponentName;\r
878ddf1f 79\r
92dda53e 80//\r
81// Bot Driver Binding Protocol\r
82//\r
83EFI_STATUS\r
84EFIAPI\r
85BotDriverBindingSupported (\r
86 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
87 IN EFI_HANDLE ControllerHandle,\r
88 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
89 );\r
90\r
91EFI_STATUS\r
92EFIAPI\r
93BotDriverBindingStart (\r
94 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
95 IN EFI_HANDLE ControllerHandle,\r
96 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
97 );\r
98\r
99EFI_STATUS\r
100EFIAPI\r
101BotDriverBindingStop (\r
102 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
103 IN EFI_HANDLE ControllerHandle,\r
104 IN UINTN NumberOfChildren,\r
105 IN EFI_HANDLE *ChildHandleBuffer\r
106 );\r
107\r
108//\r
109// EFI Component Name Functions\r
110//\r
111EFI_STATUS\r
112EFIAPI\r
113UsbBotComponentNameGetDriverName (\r
114 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
115 IN CHAR8 *Language,\r
116 OUT CHAR16 **DriverName\r
117 );\r
118\r
119EFI_STATUS\r
120EFIAPI\r
121UsbBotComponentNameGetControllerName (\r
122 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
123 IN EFI_HANDLE ControllerHandle,\r
124 IN EFI_HANDLE ChildHandle OPTIONAL,\r
125 IN CHAR8 *Language,\r
126 OUT CHAR16 **ControllerName\r
127 );\r
128\r
878ddf1f 129#endif\r