Common Class Definitions
[Mass Storage Device Class Driver - LUFA/Drivers/Class/MassStorage.h]

Data Structures

struct  MS_CommandBlockWrapper_t
struct  MS_CommandStatusWrapper_t

Defines

#define REQ_MassStorageReset   0xFF
#define REQ_GetMaxLUN   0xFE
#define MS_CBW_SIGNATURE   0x43425355UL
#define MS_CSW_SIGNATURE   0x53425355UL
#define MS_COMMAND_DIR_DATA_OUT   (0 << 7)
#define MS_COMMAND_DIR_DATA_IN   (1 << 7)
#define SCSI_CMD_INQUIRY   0x12
#define SCSI_CMD_REQUEST_SENSE   0x03
#define SCSI_CMD_TEST_UNIT_READY   0x00
#define SCSI_CMD_READ_CAPACITY_10   0x25
#define SCSI_CMD_SEND_DIAGNOSTIC   0x1D
#define SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL   0x1E
#define SCSI_CMD_WRITE_10   0x2A
#define SCSI_CMD_READ_10   0x28
#define SCSI_CMD_WRITE_6   0x0A
#define SCSI_CMD_READ_6   0x08
#define SCSI_CMD_VERIFY_10   0x2F
#define SCSI_CMD_MODE_SENSE_6   0x1A
#define SCSI_CMD_MODE_SENSE_10   0x5A
#define SCSI_SENSE_KEY_GOOD   0x00
#define SCSI_SENSE_KEY_RECOVERED_ERROR   0x01
#define SCSI_SENSE_KEY_NOT_READY   0x02
#define SCSI_SENSE_KEY_MEDIUM_ERROR   0x03
#define SCSI_SENSE_KEY_HARDWARE_ERROR   0x04
#define SCSI_SENSE_KEY_ILLEGAL_REQUEST   0x05
#define SCSI_SENSE_KEY_UNIT_ATTENTION   0x06
#define SCSI_SENSE_KEY_DATA_PROTECT   0x07
#define SCSI_SENSE_KEY_BLANK_CHECK   0x08
#define SCSI_SENSE_KEY_VENDOR_SPECIFIC   0x09
#define SCSI_SENSE_KEY_COPY_ABORTED   0x0A
#define SCSI_SENSE_KEY_ABORTED_COMMAND   0x0B
#define SCSI_SENSE_KEY_VOLUME_OVERFLOW   0x0D
#define SCSI_SENSE_KEY_MISCOMPARE   0x0E
#define SCSI_ASENSE_NO_ADDITIONAL_INFORMATION   0x00
#define SCSI_ASENSE_LOGICAL_UNIT_NOT_READY   0x04
#define SCSI_ASENSE_INVALID_FIELD_IN_CDB   0x24
#define SCSI_ASENSE_WRITE_PROTECTED   0x27
#define SCSI_ASENSE_FORMAT_ERROR   0x31
#define SCSI_ASENSE_INVALID_COMMAND   0x20
#define SCSI_ASENSE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE   0x21
#define SCSI_ASENSE_MEDIUM_NOT_PRESENT   0x3A
#define SCSI_ASENSEQ_NO_QUALIFIER   0x00
#define SCSI_ASENSEQ_FORMAT_COMMAND_FAILED   0x01
#define SCSI_ASENSEQ_INITIALIZING_COMMAND_REQUIRED   0x02
#define SCSI_ASENSEQ_OPERATION_IN_PROGRESS   0x07

Enumerations

enum  MassStorage_CommandStatusCodes_t {
  SCSI_Command_Pass = 0,
  SCSI_Command_Fail = 1,
  SCSI_Phase_Error = 2
}

Detailed Description

Description

Constants, Types and Enum definitions that are common to both Device and Host modes for the USB Mass Storage Class.


Define Documentation

#define MS_CBW_SIGNATURE   0x43425355UL

Magic signature for a Command Block Wrapper used in the Mass Storage Bulk-Only transport protocol.

#define MS_COMMAND_DIR_DATA_IN   (1 << 7)

Mask for a Command Block Wrapper's flags attribute to specify a command with data sent from device-to-host.

#define MS_COMMAND_DIR_DATA_OUT   (0 << 7)

Mask for a Command Block Wrapper's flags attribute to specify a command with data sent from host-to-device.

#define MS_CSW_SIGNATURE   0x53425355UL

Magic signature for a Command Status Wrapper used in the Mass Storage Bulk-Only transport protocol.

#define REQ_GetMaxLUN   0xFE

Mass Storage Class specific request to retrieve the total number of Logical Units (drives) in the SCSI device.

#define REQ_MassStorageReset   0xFF

Mass Storage Class specific request to reset the Mass Storage interface, ready for the next command.

#define SCSI_ASENSE_FORMAT_ERROR   0x31

SCSI Additional Sense Code to indicate an error whilst formatting the device medium.

#define SCSI_ASENSE_INVALID_COMMAND   0x20

SCSI Additional Sense Code to indicate an invalid command was issued.

#define SCSI_ASENSE_INVALID_FIELD_IN_CDB   0x24

SCSI Additional Sense Code to indicate an invalid field was encountered while processing the issued command.

#define SCSI_ASENSE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE   0x21

SCSI Additional Sense Code to indicate a write to a block out outside of the medium's range was issued.

#define SCSI_ASENSE_LOGICAL_UNIT_NOT_READY   0x04

SCSI Additional Sense Code to indicate that the logical unit (LUN) addressed is not ready.

#define SCSI_ASENSE_MEDIUM_NOT_PRESENT   0x3A

SCSI Additional Sense Code to indicate that no removable medium is inserted into the device.

#define SCSI_ASENSE_NO_ADDITIONAL_INFORMATION   0x00

SCSI Additional Sense Code to indicate no additional sense information is available.

#define SCSI_ASENSE_WRITE_PROTECTED   0x27

SCSI Additional Sense Code to indicate that an attemp to write to a protected area was made.

#define SCSI_ASENSEQ_FORMAT_COMMAND_FAILED   0x01

SCSI Additional Sense Qualifier Code to indicate that a medium format command failed to complete.

#define SCSI_ASENSEQ_INITIALIZING_COMMAND_REQUIRED   0x02

SCSI Additional Sense Qualifier Code to indicate that an initializing command must be issued before the issued command can be executed.

#define SCSI_ASENSEQ_NO_QUALIFIER   0x00

SCSI Additional Sense Qualifier Code to indicate no additional sense qualifier information is available.

#define SCSI_ASENSEQ_OPERATION_IN_PROGRESS   0x07

SCSI Additional Sense Qualifier Code to indicate that an operation is currently in progress.

#define SCSI_CMD_INQUIRY   0x12

SCSI Command Code for an INQUIRY command.

#define SCSI_CMD_MODE_SENSE_10   0x5A

SCSI Command Code for a MODE SENSE (10) command.

#define SCSI_CMD_MODE_SENSE_6   0x1A

SCSI Command Code for a MODE SENSE (6) command.

#define SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL   0x1E

SCSI Command Code for a PREVENT ALLOW MEDIUM REMOVAL command.

#define SCSI_CMD_READ_10   0x28

SCSI Command Code for a READ (10) command.

#define SCSI_CMD_READ_6   0x08

SCSI Command Code for a READ (6) command.

#define SCSI_CMD_READ_CAPACITY_10   0x25

SCSI Command Code for a READ CAPACITY (10) command.

#define SCSI_CMD_REQUEST_SENSE   0x03

SCSI Command Code for a REQUEST SENSE command.

#define SCSI_CMD_SEND_DIAGNOSTIC   0x1D

SCSI Command Code for a SEND DIAGNOSTIC command.

#define SCSI_CMD_TEST_UNIT_READY   0x00

SCSI Command Code for a TEST UNIT READY command.

#define SCSI_CMD_VERIFY_10   0x2F

SCSI Command Code for a VERIFY (10) command.

#define SCSI_CMD_WRITE_10   0x2A

SCSI Command Code for a WRITE (10) command.

#define SCSI_CMD_WRITE_6   0x0A

SCSI Command Code for a WRITE (6) command.

#define SCSI_SENSE_KEY_ABORTED_COMMAND   0x0B

SCSI Sense Code to indicate that the device has aborted the issued command.

#define SCSI_SENSE_KEY_BLANK_CHECK   0x08

SCSI Sense Code to indicate an error while trying to write to a write-once medium.

#define SCSI_SENSE_KEY_COPY_ABORTED   0x0A

SCSI Sense Code to indicate that an EXTENDED COPY command has aborted due to an error.

#define SCSI_SENSE_KEY_DATA_PROTECT   0x07

SCSI Sense Code to indicate that a write attempt on a protected block has been made.

#define SCSI_SENSE_KEY_GOOD   0x00

SCSI Sense Code to indicate no error has ocurred.

#define SCSI_SENSE_KEY_HARDWARE_ERROR   0x04

SCSI Sense Code to indicate a hardware has ocurred.

#define SCSI_SENSE_KEY_ILLEGAL_REQUEST   0x05

SCSI Sense Code to indicate that an illegal request has been issued.

#define SCSI_SENSE_KEY_MEDIUM_ERROR   0x03

SCSI Sense Code to indicate an error whilst accessing the medium.

#define SCSI_SENSE_KEY_MISCOMPARE   0x0E

SCSI Sense Code to indicate that the source data did not match the data read from the medium.

#define SCSI_SENSE_KEY_NOT_READY   0x02

SCSI Sense Code to indicate that the device is not ready for a new command.

#define SCSI_SENSE_KEY_RECOVERED_ERROR   0x01

SCSI Sense Code to indicate that the device has recovered from an error.

#define SCSI_SENSE_KEY_UNIT_ATTENTION   0x06

SCSI Sense Code to indicate that the unit requires attention from the host to indicate a reset event, medium removal or other condition.

#define SCSI_SENSE_KEY_VENDOR_SPECIFIC   0x09

SCSI Sense Code to indicate a vendor specific error has ocurred.

#define SCSI_SENSE_KEY_VOLUME_OVERFLOW   0x0D

SCSI Sense Code to indicate an attempt to write past the end of a partition has been made.


Enumeration Type Documentation

Enum for the possible command status wrapper return status codes.

Enumerator:
SCSI_Command_Pass 

Command completed with no error

SCSI_Command_Fail 

Command failed to complete - host may check the exact error via a SCSI REQUEST SENSE command

SCSI_Phase_Error 

Command failed due to being invalid in the current phase


Generated on Thu Sep 24 22:58:13 2009 for LUFA (Formerly MyUSB) Library by  doxygen 1.6.1