Import Usb/UsbBusDxe and Usb/UsbMassStorageDxe into MdeModulePkg.
[people/mcb30/edk2.git] / edk2 / MdeModulePkg / Bus / Usb / UsbMassStorageDxe / UsbMassCbi.h
1 /** @file\r
2 \r
3 Copyright (c) 2007, Intel Corporation\r
4 All rights reserved. This program and the accompanying materials\r
5 are licensed and made available under the terms and conditions of the BSD License\r
6 which accompanies this distribution.  The full text of the license may be found at\r
7 http://opensource.org/licenses/bsd-license.php\r
8 \r
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11 \r
12 Module Name:\r
13 \r
14   UsbMassCbi.h\r
15 \r
16 Abstract:\r
17 \r
18   Defination for the USB mass storage Control/Bulk/Interrupt transpor.\r
19 \r
20 Revision History\r
21 \r
22 \r
23 **/\r
24 \r
25 #ifndef _EFI_USBMASS_CBI_H_\r
26 #define _EFI_USBMASS_CBI_H_\r
27 \r
28 enum {\r
29   USB_CBI_MAX_PACKET_NUM        = 16,\r
30   USB_CBI_RESET_CMD_LEN         = 12,\r
31 \r
32   //\r
33   // Usb CBI retry times\r
34   //\r
35   USB_CBI_MAX_RETRY             = 3,\r
36 \r
37   //\r
38   // Usb Cbi transfer timeout\r
39   //\r
40   USB_CBI_RESET_TIMEOUT         = 1 * USB_MASS_STALL_1_S,\r
41 };\r
42 \r
43 //\r
44 // Put Interface at the first field is to make it easy to get by Context, which\r
45 // could be BOT/CBI Protocol instance\r
46 //\r
47 typedef struct {\r
48   EFI_USB_INTERFACE_DESCRIPTOR  Interface;\r
49   EFI_USB_ENDPOINT_DESCRIPTOR   *BulkInEndpoint;\r
50   EFI_USB_ENDPOINT_DESCRIPTOR   *BulkOutEndpoint;\r
51   EFI_USB_ENDPOINT_DESCRIPTOR   *InterruptEndpoint;\r
52   EFI_USB_IO_PROTOCOL           *UsbIo;\r
53 } USB_CBI_PROTOCOL;\r
54 \r
55 #pragma pack(1)\r
56 typedef struct {\r
57   UINT8               Type;\r
58   UINT8               Value;\r
59 } USB_CBI_STATUS;\r
60 #pragma pack()\r
61 \r
62 extern USB_MASS_TRANSPORT mUsbCbi0Transport;\r
63 extern USB_MASS_TRANSPORT mUsbCbi1Transport;\r
64 #endif\r