4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Support for SCSI-2 standard
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// SCSI command OP Code
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Commands for all device types
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional commands for Direct Access Devices
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional commands for Sequential Access Devices
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional commands for Printer Devices
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional commands for Processor Devices
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional commands for Write-Once Devices
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional commands for CD-ROM Devices
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional commands for Scanner Devices
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional commands for Optical Memory Devices
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional commands for Medium Changer Devices
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional commands for Communition Devices
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// SCSI Data Transfer Direction
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Peripheral Device Type Definitions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_DISK 0x00 ///< Direct-access device (e.g. magnetic disk)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_TAPE 0x01 ///< Sequential-access device (e.g. magnetic tape)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_PRINTER 0x02 ///< Printer device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_PROCESSOR 0x03 ///< Processor device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_WORM 0x04 ///< Write-once device (e.g. some optical disks)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_SCANNER 0x06 ///< Scanner device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_OPTICAL 0x07 ///< Optical memory device (e.g. some optical disks)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_MEDIUMCHANGER 0x08 ///< Medium changer device (e.g. jukeboxes)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_COMMUNICATION 0x09 ///< Communications device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_ASCIT8_1 0x0A ///< Defined by ASC IT8 (Graphic arts pre-press devices)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_ASCIT8_2 0x0B ///< Defined by ASC IT8 (Graphic arts pre-press devices)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// 0Ch - 1Eh are reserved
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_TYPE_UNKNOWN 0x1F ///< Unknown or no device type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Page Codes for INQUIRY command
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Standard INQUIRY data format
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Supported VPD Pages VPD page
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Block Limits VPD page
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Error codes 70h and 71h sense data format
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Addnl_Sense_Length; ///< Additional sense length (n-7)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Addnl_Sense_Code_Qualifier; ///< Additional sense code qualifier
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Field_Replaceable_Unit_Code; ///< Field replaceable unit code
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// SCSI Disk READ CAPACITY Data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Sense Key
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Additional Sense Codes and Sense Code Qualifiers.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Only some frequently used additional sense codes and qualifiers are
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// defined here. Please refer to SCSI standard for full value definition.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_SCSI_ASC_RESET (0x29) ///< Power On Reset or Bus Reset occurred