Add support for REPORTING OPTIONS == 3 in REPORT SUPPORTED OPERATION CODES.

MFC after:	2 weeks
This commit is contained in:
Alexander Motin 2016-12-21 20:19:12 +00:00
parent d941a03b66
commit 20549bf66f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=310373
2 changed files with 15 additions and 0 deletions

View file

@ -7371,6 +7371,8 @@ ctl_report_supported_opcodes(struct ctl_scsiio *ctsio)
ctl_done((union ctl_io *)ctsio);
return (CTL_RETVAL_COMPLETE);
}
/* FALLTHROUGH */
case RSO_OPTIONS_OC_ASA:
total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32;
break;
default:
@ -7459,6 +7461,18 @@ ctl_report_supported_opcodes(struct ctl_scsiio *ctsio)
} else
one->support = 1;
break;
case RSO_OPTIONS_OC_ASA:
one = (struct scsi_report_supported_opcodes_one *)
ctsio->kern_data_ptr;
entry = &ctl_cmd_table[opcode];
if (entry->flags & CTL_CMD_FLAG_SA5) {
entry = &((const struct ctl_cmd_entry *)
entry->execute)[service_action];
} else if (service_action != 0) {
one->support = 1;
break;
}
goto fill_one;
}
ctl_set_success(ctsio);

View file

@ -1456,6 +1456,7 @@ struct scsi_report_supported_opcodes
#define RSO_OPTIONS_ALL 0x00
#define RSO_OPTIONS_OC 0x01
#define RSO_OPTIONS_OC_SA 0x02
#define RSO_OPTIONS_OC_ASA 0x03
uint8_t requested_opcode;
uint8_t requested_service_action[2];
uint8_t length[4];