1 // Definitions for SCSI style command data blocks.
5 #include "types.h" // u8
7 #define CDB_CMD_READ_10 0x28
8 #define CDB_CMD_VERIFY_10 0x2f
9 #define CDB_CMD_WRITE_10 0x2a
11 struct cdb_rwdata_10 {
21 #define CDB_CMD_READ_CAPACITY 0x25
23 struct cdb_read_capacity {
30 struct cdbres_read_capacity {
35 #define CDB_CMD_TEST_UNIT_READY 0x00
36 #define CDB_CMD_INQUIRY 0x12
37 #define CDB_CMD_REQUEST_SENSE 0x03
39 struct cdb_request_sense {
48 struct cdbres_request_sense {
60 #define SCSI_TYPE_DISK 0x00
61 #define SCSI_TYPE_CDROM 0x05
63 struct cdbres_inquiry {
75 int cdb_get_inquiry(struct disk_op_s *op, struct cdbres_inquiry *data);
76 int cdb_get_sense(struct disk_op_s *op, struct cdbres_request_sense *data);
77 int cdb_test_unit_ready(struct disk_op_s *op);
78 int cdb_read_capacity(struct disk_op_s *op, struct cdbres_read_capacity *data);
79 int cdb_inquiry(struct disk_op_s *op, struct cdbres_inquiry *data);
80 int cdb_read(struct disk_op_s *op);
81 int cdb_write(struct disk_op_s *op);
83 int scsi_is_ready(struct disk_op_s *op);