From owner-svn-src-all@freebsd.org Wed Dec 21 20:19:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDACEC8A39A; Wed, 21 Dec 2016 20:19:13 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8D03F16BB; Wed, 21 Dec 2016 20:19:13 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uBLKJCND034477; Wed, 21 Dec 2016 20:19:12 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uBLKJCBF034475; Wed, 21 Dec 2016 20:19:12 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201612212019.uBLKJCBF034475@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 21 Dec 2016 20:19:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r310373 - in head/sys/cam: ctl scsi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Dec 2016 20:19:13 -0000 Author: mav Date: Wed Dec 21 20:19:12 2016 New Revision: 310373 URL: https://svnweb.freebsd.org/changeset/base/310373 Log: Add support for REPORTING OPTIONS == 3 in REPORT SUPPORTED OPERATION CODES. MFC after: 2 weeks Modified: head/sys/cam/ctl/ctl.c head/sys/cam/scsi/scsi_all.h Modified: head/sys/cam/ctl/ctl.c ============================================================================== --- head/sys/cam/ctl/ctl.c Wed Dec 21 18:42:04 2016 (r310372) +++ head/sys/cam/ctl/ctl.c Wed Dec 21 20:19:12 2016 (r310373) @@ -7371,6 +7371,8 @@ ctl_report_supported_opcodes(struct ctl_ 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 @@ fill_one: } 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); Modified: head/sys/cam/scsi/scsi_all.h ============================================================================== --- head/sys/cam/scsi/scsi_all.h Wed Dec 21 18:42:04 2016 (r310372) +++ head/sys/cam/scsi/scsi_all.h Wed Dec 21 20:19:12 2016 (r310373) @@ -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];