Select one of the symbols to view example projects that use it.
 
Outline
#define __USBD_MSC_SCSI_H
#include "usbd_def.h"
#define SENSE_LIST_DEEPTH
#define SCSI_FORMAT_UNIT
#define SCSI_INQUIRY
#define SCSI_MODE_SELECT6
#define SCSI_MODE_SELECT10
#define SCSI_MODE_SENSE6
#define SCSI_MODE_SENSE10
#define SCSI_ALLOW_MEDIUM_REMOVAL
#define SCSI_READ6
#define SCSI_READ10
#define SCSI_READ12
#define SCSI_READ16
#define SCSI_READ_CAPACITY10
#define SCSI_READ_CAPACITY16
#define SCSI_REQUEST_SENSE
#define SCSI_START_STOP_UNIT
#define SCSI_TEST_UNIT_READY
#define SCSI_WRITE6
#define SCSI_WRITE10
#define SCSI_WRITE12
#define SCSI_WRITE16
#define SCSI_VERIFY10
#define SCSI_VERIFY12
#define SCSI_VERIFY16
#define SCSI_SEND_DIAGNOSTIC
#define SCSI_READ_FORMAT_CAPACITIES
#define NO_SENSE
#define RECOVERED_ERROR
#define NOT_READY
#define MEDIUM_ERROR
#define HARDWARE_ERROR
#define ILLEGAL_REQUEST
#define UNIT_ATTENTION
#define DATA_PROTECT
#define BLANK_CHECK
#define MSC_VENDOR_SPECIFIC
#define COPY_ABORTED
#define ABORTED_COMMAND
#define VOLUME_OVERFLOW
#define MISCOMPARE
#define INVALID_CDB
#define INVALID_FIELED_IN_COMMAND
#define PARAMETER_LIST_LENGTH_ERROR
#define INVALID_FIELD_IN_PARAMETER_LIST
#define ADDRESS_OUT_OF_RANGE
#define MEDIUM_NOT_PRESENT
#define MEDIUM_HAVE_CHANGED
#define WRITE_PROTECTED
#define UNRECOVERED_READ_ERROR
#define WRITE_FAULT
#define READ_FORMAT_CAPACITY_DATA_LEN
#define READ_CAPACITY10_DATA_LEN
#define REQUEST_SENSE_DATA_LEN
#define STANDARD_INQUIRY_DATA_LEN
#define BLKVFY
#define SCSI_MEDIUM_UNLOCKED
#define SCSI_MEDIUM_LOCKED
#define SCSI_MEDIUM_EJECTED
_SENSE_ITEM
SCSI_ProcessCmd(USBD_HandleTypeDef *, uint8_t, uint8_t *);
SCSI_SenseCode(USBD_HandleTypeDef *, uint8_t, uint8_t, uint8_t);
Files
loading...
CodeScopeSTM32 Libraries and SamplesSTM32_USB_Device_LibraryClass/MSC/Inc/usbd_msc_scsi.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/** ****************************************************************************** * @file usbd_msc_scsi.h * @author MCD Application Team * @brief Header for the usbd_msc_scsi.c file ****************************************************************************** * @attention * * Copyright (c) 2015 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** *//* ... */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USBD_MSC_SCSI_H #define __USBD_MSC_SCSI_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "usbd_def.h" /** @addtogroup STM32_USB_DEVICE_LIBRARY * @{ *//* ... */ /** @defgroup USBD_SCSI * @brief header file for the storage disk file * @{ *//* ... */ /** @defgroup USBD_SCSI_Exported_Defines * @{ *//* ... */ #define SENSE_LIST_DEEPTH 4U /* SCSI Commands */ #define SCSI_FORMAT_UNIT 0x04U #define SCSI_INQUIRY 0x12U #define SCSI_MODE_SELECT6 0x15U #define SCSI_MODE_SELECT10 0x55U #define SCSI_MODE_SENSE6 0x1AU #define SCSI_MODE_SENSE10 0x5AU #define SCSI_ALLOW_MEDIUM_REMOVAL 0x1EU #define SCSI_READ6 0x08U #define SCSI_READ10 0x28U #define SCSI_READ12 0xA8U #define SCSI_READ16 0x88U #define SCSI_READ_CAPACITY10 0x25U #define SCSI_READ_CAPACITY16 0x9EU #define SCSI_REQUEST_SENSE 0x03U #define SCSI_START_STOP_UNIT 0x1BU #define SCSI_TEST_UNIT_READY 0x00U #define SCSI_WRITE6 0x0AU #define SCSI_WRITE10 0x2AU #define SCSI_WRITE12 0xAAU #define SCSI_WRITE16 0x8AU #define SCSI_VERIFY10 0x2FU #define SCSI_VERIFY12 0xAFU #define SCSI_VERIFY16 0x8FU #define SCSI_SEND_DIAGNOSTIC 0x1DU #define SCSI_READ_FORMAT_CAPACITIES 0x23U #define NO_SENSE 0U #define RECOVERED_ERROR 1U #define NOT_READY 2U #define MEDIUM_ERROR 3U #define HARDWARE_ERROR 4U #define ILLEGAL_REQUEST 5U #define UNIT_ATTENTION 6U #define DATA_PROTECT 7U #define BLANK_CHECK 8U #define MSC_VENDOR_SPECIFIC 9U #define COPY_ABORTED 10U #define ABORTED_COMMAND 11U #define VOLUME_OVERFLOW 13U #define MISCOMPARE 14U #define INVALID_CDB 0x20U #define INVALID_FIELED_IN_COMMAND 0x24U #define PARAMETER_LIST_LENGTH_ERROR 0x1AU #define INVALID_FIELD_IN_PARAMETER_LIST 0x26U #define ADDRESS_OUT_OF_RANGE 0x21U #define MEDIUM_NOT_PRESENT 0x3AU #define MEDIUM_HAVE_CHANGED 0x28U #define WRITE_PROTECTED 0x27U #define UNRECOVERED_READ_ERROR 0x11U #define WRITE_FAULT 0x03U #define READ_FORMAT_CAPACITY_DATA_LEN 0x0CU #define READ_CAPACITY10_DATA_LEN 0x08U #define REQUEST_SENSE_DATA_LEN 0x12U #define STANDARD_INQUIRY_DATA_LEN 0x24U #define BLKVFY 0x04U #define SCSI_MEDIUM_UNLOCKED 0x00U #define SCSI_MEDIUM_LOCKED 0x01U #define SCSI_MEDIUM_EJECTED 0x02U 58 defines/** * @} *//* ... */ /** @defgroup USBD_SCSI_Exported_TypesDefinitions * @{ *//* ... */ typedef struct _SENSE_ITEM { uint8_t Skey; union { struct _ASCs { uint8_t ASC; uint8_t ASCQ; ...} b; uint8_t ASC; uint8_t *pData; ...} w; ...} USBD_SCSI_SenseTypeDef; /** * @} *//* ... */ /** @defgroup USBD_SCSI_Exported_Macros * @{ *//* ... */ /** * @} *//* ... */ /** @defgroup USBD_SCSI_Exported_Variables * @{ *//* ... */ /** * @} *//* ... */ /** @defgroup USBD_SCSI_Exported_FunctionsPrototype * @{ *//* ... */ int8_t SCSI_ProcessCmd(USBD_HandleTypeDef *pdev, uint8_t lun, uint8_t *cmd); void SCSI_SenseCode(USBD_HandleTypeDef *pdev, uint8_t lun, uint8_t sKey, uint8_t ASC); /** * @} *//* ... */ #ifdef __cplusplus }extern "C" { ... } #endif /* ... */ #endif /* __USBD_MSC_SCSI_H */ /** * @} *//* ... */ /** * @} *//* ... */ /** * @} *//* ... */