Home | History | Annotate | Download | only in UsbAtapi
      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