3 Copyright (c) 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 The implementation of USB mass storage class device driver.
25 #ifndef _EFI_USBMASS_IMPL_H_
26 #define _EFI_USBMASS_IMPL_H_
28 typedef struct _USB_MASS_DEVICE USB_MASS_DEVICE
;
31 #include "UsbMassBot.h"
32 #include "UsbMassCbi.h"
33 #include "UsbMassBoot.h"
36 USB_MASS_SIGNATURE
= EFI_SIGNATURE_32 ('U', 's', 'b', 'K')
39 struct _USB_MASS_DEVICE
{
41 EFI_HANDLE Controller
;
42 EFI_USB_IO_PROTOCOL
*UsbIo
;
43 EFI_BLOCK_IO_PROTOCOL BlockIo
;
44 EFI_BLOCK_IO_MEDIA BlockIoMedia
;
45 BOOLEAN OpticalStorage
;
46 UINT8 Lun
; // Logical Unit Number
47 UINT8 Pdt
; // Peripheral Device Type
48 USB_MASS_TRANSPORT
*Transport
; // USB mass storage transport protocol
49 VOID
*Context
; // Opaque storage for mass transport
52 #define USB_MASS_DEVICE_FROM_BLOCKIO(a) \
53 CR (a, USB_MASS_DEVICE, BlockIo, USB_MASS_SIGNATURE)
55 extern EFI_COMPONENT_NAME_PROTOCOL gUsbMassStorageComponentName
;