// Test unit ready int cdb_test_unit_ready(struct disk_op_s *op) { struct cdb_request_sense cmd; memset(&cmd, 0, sizeof(cmd)); cmd.command = CDB_CMD_TEST_UNIT_READY; op->count = 0; op->buf_fl = NULL; return cdb_cmd_data(op, &cmd, 0); }
// Request SENSE int cdb_get_sense(struct disk_op_s *op, struct cdbres_request_sense *data) { struct cdb_request_sense cmd; memset(&cmd, 0, sizeof(cmd)); cmd.command = CDB_CMD_REQUEST_SENSE; cmd.length = sizeof(*data); op->count = 1; op->buf_fl = data; return cdb_cmd_data(op, &cmd, sizeof(*data)); }
int cdb_get_inquiry(struct disk_op_s *op, struct cdbres_inquiry *data) { struct cdb_request_sense cmd; memset(&cmd, 0, sizeof(cmd)); cmd.command = CDB_CMD_INQUIRY; cmd.length = sizeof(*data); op->count = 1; op->buf_fl = data; return cdb_cmd_data(op, &cmd, sizeof(*data)); }
// Mode sense, geometry page. int cdb_mode_sense_geom(struct disk_op_s *op, struct cdbres_mode_sense_geom *data) { struct cdb_mode_sense cmd; memset(&cmd, 0, sizeof(cmd)); cmd.command = CDB_CMD_MODE_SENSE; cmd.flags = 8; /* DBD */ cmd.page = MODE_PAGE_HD_GEOMETRY; cmd.count = cpu_to_be16(sizeof(*data)); op->count = 1; op->buf_fl = data; return cdb_cmd_data(op, &cmd, sizeof(*data)); }