Add ST_DONGLE and ST_NUCLEO_F103
[gnuk/gnuk.git] / src / usb-msc.h
1 #define MSC_CBW_SIGNATURE 0x43425355
2 #define MSC_CSW_SIGNATURE 0x53425355
3
4 #define MSC_GET_MAX_LUN_COMMAND        0xFE
5 #define MSC_MASS_STORAGE_RESET_COMMAND 0xFF
6
7 #define MSC_CSW_STATUS_PASSED 0
8 #define MSC_CSW_STATUS_FAILED 1
9
10 #define SCSI_INQUIRY                0x12
11 #define SCSI_MODE_SENSE6            0x1A
12 #define SCSI_ALLOW_MEDIUM_REMOVAL   0x1E
13 #define SCSI_READ10                 0x28
14 #define SCSI_READ_CAPACITY10        0x25
15 #define SCSI_REQUEST_SENSE          0x03
16 #define SCSI_START_STOP_UNIT        0x1B
17 #define SCSI_TEST_UNIT_READY        0x00
18 #define SCSI_WRITE10                0x2A
19 #define SCSI_VERIFY10               0x2F
20 #define SCSI_READ_FORMAT_CAPACITIES 0x23
21
22 #define SCSI_SYNCHRONIZE_CACHE      0x35
23
24 #define MSC_IDLE        0
25 #define MSC_DATA_OUT    1
26 #define MSC_DATA_IN     2
27 #define MSC_SENDING_CSW 3
28 #define MSC_ERROR       4
29
30 struct CBW {
31   uint32_t dCBWSignature;
32   uint32_t dCBWTag;
33   uint32_t dCBWDataTransferLength;
34   uint8_t bmCBWFlags;
35   uint8_t bCBWLUN;
36   uint8_t bCBWCBLength;
37   uint8_t CBWCB[16];
38 } __attribute__((packed));
39
40 struct CSW {
41   uint32_t dCSWSignature;
42   uint32_t dCSWTag;
43   uint32_t dCSWDataResidue;
44   uint8_t bCSWStatus;
45 } __attribute__((packed));
46
47 #define SCSI_ERROR_NOT_READY 2
48 #define SCSI_ERROR_ILLEAGAL_REQUEST 5
49 #define SCSI_ERROR_UNIT_ATTENTION 6
50 #define SCSI_ERROR_DATA_PROTECT 7
51
52 extern uint8_t media_available;
53 extern chopstx_mutex_t *pinpad_mutex;
54 extern chopstx_cond_t *pinpad_cond;