387c53a72d2e176858711e326d621ec727f87275
[people/mcb30/edk2.git] / edk2 / EdkModulePkg / Bus / Usb / UsbMassStorage / Dxe / UsbMassStorage.h
1 /*++\r
2 Copyright (c) 2006, Intel Corporation                                                         \r
3 All rights reserved. This program and the accompanying materials                          \r
4 are licensed and made available under the terms and conditions of the BSD License         \r
5 which accompanies this distribution.  The full text of the license may be found at        \r
6 http://opensource.org/licenses/bsd-license.php                                            \r
7                                                                                           \r
8 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
9 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
10 \r
11 Module Name:\r
12 \r
13     UsbMassStorage.h\r
14 \r
15 Abstract:\r
16 \r
17     Header file for USB Mass Storage Driver's Data Structures\r
18 \r
19 Revision History\r
20 --*/\r
21 \r
22 #ifndef _USB_FLP_H\r
23 #define _USB_FLP_H\r
24 \r
25 \r
26 #include <IndustryStandard/Usb.h>\r
27 #include "UsbMassStorageData.h"\r
28 \r
29 #define CLASS_MASSTORAGE          8\r
30 #define SUBCLASS_UFI              4\r
31 #define SUBCLASS_8070             5\r
32 #define PROTOCOL_BOT              0x50\r
33 #define PROTOCOL_CBI0             0\r
34 #define PROTOCOL_CBI1             1\r
35 \r
36 #define USBFLOPPY                 1\r
37 #define USBFLOPPY2                2 // for those that use ReadCapacity(0x25) command to retrieve media capacity\r
38 #define USBCDROM                  3\r
39 \r
40 #define USB_FLOPPY_DEV_SIGNATURE  EFI_SIGNATURE_32 ('u', 'f', 'l', 'p')\r
41 \r
42 typedef struct {\r
43   UINTN                   Signature;\r
44 \r
45   EFI_HANDLE              Handle;\r
46   EFI_BLOCK_IO_PROTOCOL   BlkIo;\r
47   EFI_BLOCK_IO_MEDIA      BlkMedia;\r
48   EFI_USB_ATAPI_PROTOCOL  *AtapiProtocol;\r
49 \r
50   REQUEST_SENSE_DATA      *SenseData;\r
51   UINT8                   SenseDataNumber;\r
52   UINT8                   DeviceType;\r
53 \r
54 } USB_FLOPPY_DEV;\r
55 \r
56 #define USB_FLOPPY_DEV_FROM_THIS(a) \\r
57     CR(a, USB_FLOPPY_DEV, BlkIo, USB_FLOPPY_DEV_SIGNATURE)\r
58 \r
59 #endif\r