usbh_msc_scsi.h
169 lines
| 4.0 KiB
| text/x-c
|
CLexer
r71 | /** | |||
****************************************************************************** | ||||
* @file usbh_msc_scsi.h | ||||
* @author MCD Application Team | ||||
* @version V2.1.0 | ||||
* @date 19-March-2012 | ||||
* @brief Header file for usbh_msc_scsi.c | ||||
****************************************************************************** | ||||
* @attention | ||||
* | ||||
* <h2><center>© COPYRIGHT 2012 STMicroelectronics</center></h2> | ||||
* | ||||
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); | ||||
* You may not use this file except in compliance with the License. | ||||
* You may obtain a copy of the License at: | ||||
* | ||||
* http://www.st.com/software_license_agreement_liberty_v2 | ||||
* | ||||
* Unless required by applicable law or agreed to in writing, software | ||||
* distributed under the License is distributed on an "AS IS" BASIS, | ||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
* See the License for the specific language governing permissions and | ||||
* limitations under the License. | ||||
* | ||||
****************************************************************************** | ||||
*/ | ||||
/* Define to prevent recursive ----------------------------------------------*/ | ||||
#ifndef __USBH_MSC_SCSI_H__ | ||||
#define __USBH_MSC_SCSI_H__ | ||||
/* Includes ------------------------------------------------------------------*/ | ||||
#include "usbh_stdreq.h" | ||||
/** @addtogroup USBH_LIB | ||||
* @{ | ||||
*/ | ||||
/** @addtogroup USBH_CLASS | ||||
* @{ | ||||
*/ | ||||
/** @addtogroup USBH_MSC_CLASS | ||||
* @{ | ||||
*/ | ||||
/** @defgroup USBH_MSC_SCSI | ||||
* @brief This file is the Header file for usbh_msc_scsi.c | ||||
* @{ | ||||
*/ | ||||
/** @defgroup USBH_MSC_SCSI_Exported_Types | ||||
* @{ | ||||
*/ | ||||
typedef enum { | ||||
USBH_MSC_OK = 0, | ||||
USBH_MSC_FAIL = 1, | ||||
USBH_MSC_PHASE_ERROR = 2, | ||||
USBH_MSC_BUSY = 3 | ||||
}USBH_MSC_Status_TypeDef; | ||||
typedef enum { | ||||
CMD_UNINITIALIZED_STATE =0, | ||||
CMD_SEND_STATE, | ||||
CMD_WAIT_STATUS | ||||
} CMD_STATES_TypeDef; | ||||
typedef struct __MassStorageParameter | ||||
{ | ||||
uint32_t MSCapacity; | ||||
uint32_t MSSenseKey; | ||||
uint16_t MSPageLength; | ||||
uint8_t MSBulkOutEp; | ||||
uint8_t MSBulkInEp; | ||||
uint8_t MSWriteProtect; | ||||
} MassStorageParameter_TypeDef; | ||||
/** | ||||
* @} | ||||
*/ | ||||
/** @defgroup USBH_MSC_SCSI_Exported_Defines | ||||
* @{ | ||||
*/ | ||||
#define OPCODE_TEST_UNIT_READY 0X00 | ||||
#define OPCODE_READ_CAPACITY10 0x25 | ||||
#define OPCODE_MODE_SENSE6 0x1A | ||||
#define OPCODE_READ10 0x28 | ||||
#define OPCODE_WRITE10 0x2A | ||||
#define OPCODE_REQUEST_SENSE 0x03 | ||||
#define DESC_REQUEST_SENSE 0X00 | ||||
#define ALLOCATION_LENGTH_REQUEST_SENSE 63 | ||||
#define XFER_LEN_READ_CAPACITY10 8 | ||||
#define XFER_LEN_MODE_SENSE6 63 | ||||
#define MASK_MODE_SENSE_WRITE_PROTECT 0x80 | ||||
#define MODE_SENSE_PAGE_CONTROL_FIELD 0x00 | ||||
#define MODE_SENSE_PAGE_CODE 0x3F | ||||
#define DISK_WRITE_PROTECTED 0x01 | ||||
/** | ||||
* @} | ||||
*/ | ||||
/** @defgroup USBH_MSC_SCSI_Exported_Macros | ||||
* @{ | ||||
*/ | ||||
/** | ||||
* @} | ||||
*/ | ||||
/** @defgroup _Exported_Variables | ||||
* @{ | ||||
*/ | ||||
extern MassStorageParameter_TypeDef USBH_MSC_Param; | ||||
/** | ||||
* @} | ||||
*/ | ||||
/** @defgroup USBH_MSC_SCSI_Exported_FunctionsPrototype | ||||
* @{ | ||||
*/ | ||||
uint8_t USBH_MSC_TestUnitReady(USB_OTG_CORE_HANDLE *pdev); | ||||
uint8_t USBH_MSC_ReadCapacity10(USB_OTG_CORE_HANDLE *pdev); | ||||
uint8_t USBH_MSC_ModeSense6(USB_OTG_CORE_HANDLE *pdev); | ||||
uint8_t USBH_MSC_RequestSense(USB_OTG_CORE_HANDLE *pdev); | ||||
uint8_t USBH_MSC_Write10(USB_OTG_CORE_HANDLE *pdev, | ||||
uint8_t *, | ||||
uint32_t , | ||||
uint32_t ); | ||||
uint8_t USBH_MSC_Read10(USB_OTG_CORE_HANDLE *pdev, | ||||
uint8_t *, | ||||
uint32_t , | ||||
uint32_t ); | ||||
void USBH_MSC_StateMachine(USB_OTG_CORE_HANDLE *pdev); | ||||
/** | ||||
* @} | ||||
*/ | ||||
#endif //__USBH_MSC_SCSI_H__ | ||||
/** | ||||
* @} | ||||
*/ | ||||
/** | ||||
* @} | ||||
*/ | ||||
/** | ||||
* @} | ||||
*/ | ||||
/** | ||||
* @} | ||||
*/ | ||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||