--- /dev/null
+/** @file\r
+\r
+Copyright (c) 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+ UsbMassImpl.h\r
+\r
+Abstract:\r
+\r
+ The implementation of USB mass storage class device driver.\r
+\r
+Revision History\r
+\r
+\r
+**/\r
+\r
+#ifndef _EFI_USBMASS_IMPL_H_\r
+#define _EFI_USBMASS_IMPL_H_\r
+\r
+typedef struct _USB_MASS_DEVICE USB_MASS_DEVICE;\r
+\r
+#include "UsbMass.h"\r
+#include "UsbMassBot.h"\r
+#include "UsbMassCbi.h"\r
+#include "UsbMassBoot.h"\r
+\r
+enum {\r
+ USB_MASS_SIGNATURE= EFI_SIGNATURE_32 ('U', 's', 'b', 'K'),\r
+};\r
+\r
+typedef struct _USB_MASS_DEVICE {\r
+ UINT32 Signature;\r
+ EFI_HANDLE Controller;\r
+ EFI_USB_IO_PROTOCOL *UsbIo;\r
+ EFI_BLOCK_IO_PROTOCOL BlockIo;\r
+ EFI_BLOCK_IO_MEDIA BlockIoMedia;\r
+ BOOLEAN OpticalStorage;\r
+ UINT8 Lun; // Logical Unit Number\r
+ UINT8 Pdt; // Peripheral Device Type\r
+ USB_MASS_TRANSPORT *Transport; // USB mass storage transport protocol\r
+ VOID *Context; // Opaque storage for mass transport\r
+};\r
+\r
+#define USB_MASS_DEVICE_FROM_BLOCKIO(a) \\r
+ CR (a, USB_MASS_DEVICE, BlockIo, USB_MASS_SIGNATURE)\r
+\r
+extern EFI_COMPONENT_NAME_PROTOCOL gUsbMassStorageComponentName;\r
+\r
+#endif\r