1 /*++
2 
3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
4 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
8 
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.
11 
12 Module Name:
13 
14     UsbAtapi.h
15 
16 Abstract:
17 
18     EFI Atapi Protocol definition.
19 
20 Revision History
21 
22 --*/
23 
24 #ifndef _EFI_USB_ATAPI_H
25 #define _EFI_USB_ATAPI_H
26 
27 //
28 // Transfer protocol types
29 //
30 #define BOT    0x50
31 #define CBI0  0x00
32 #define CBI1  0x01
33 
34 //
35 // SubClass Code (defines command set)
36 //
37 #define EFI_USB_SUBCLASS_RBC            0x01
38 #define EFI_USB_SUBCLASS_ATAPI          0x02
39 #define EFI_USB_SUBCLASS_QIC_157        0x03
40 #define EFI_USB_SUBCLASS_UFI            0x04
41 #define EFI_USB_SUBCLASS_SFF_8070i      0x05
42 #define EFI_USB_SUBCLASS_SCSI           0x06
43 #define EFI_USB_SUBCLASS_RESERVED_LOW   0x07
44 #define EFI_USB_SUBCLASS_RESERVED_HIGH  0xff
45 //
46 // Global GUID for transfer protocol interface
47 //
48 #define EFI_USB_ATAPI_PROTOCOL_GUID \
49     { 0x2B2F68DA, 0x0CD2, 0x44cf, {0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75} }
50 
51 EFI_FORWARD_DECLARATION (EFI_USB_ATAPI_PROTOCOL);
52 
53 typedef
54 EFI_STATUS
55 (EFIAPI *EFI_USB_ATAPI_PACKET_CMD) (
56   IN EFI_USB_ATAPI_PROTOCOL  *This,
57   IN  VOID                            *Command,
58   IN  UINT8                            CommandSize,
59   IN  VOID                            *DataBuffer,
60   IN  UINT32                          BufferLength,
61   IN  EFI_USB_DATA_DIRECTION          Direction,
62   IN  UINT16                          TimeOutInMilliSeconds
63 );
64 
65 typedef
66 EFI_STATUS
67 (EFIAPI *EFI_USB_MASS_STORAGE_RESET) (
68   IN EFI_USB_ATAPI_PROTOCOL  *This,
69   IN  BOOLEAN                         ExtendedVerification
70 );
71 
72 //
73 //  Protocol Interface Structure
74 //
75 struct _EFI_USB_ATAPI_PROTOCOL {
76   EFI_USB_ATAPI_PACKET_CMD        UsbAtapiPacketCmd;
77   EFI_USB_MASS_STORAGE_RESET      UsbAtapiReset;
78   UINT32                          CommandProtocol;
79 };
80 
81 extern EFI_GUID gEfiUsbAtapiProtocolGuid;
82 
83 #endif
84