summaryrefslogtreecommitdiffstats
path: root/sbin/camcontrol
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2012-05-24 11:07:39 +0000
committermav <mav@FreeBSD.org>2012-05-24 11:07:39 +0000
commit4eda0cbde2eaa3653640d81ad298cddfce1f3759 (patch)
tree9d658f698668bc65cfb606b38c8cae7948e0b2fd /sbin/camcontrol
parent3c7243df78747d294e451596c19e50e9397cf115 (diff)
downloadFreeBSD-src-4eda0cbde2eaa3653640d81ad298cddfce1f3759.zip
FreeBSD-src-4eda0cbde2eaa3653640d81ad298cddfce1f3759.tar.gz
MFprojects/zfsd:
- Add low-level support for SATA Enclosure Management Bridge (SEMB) devices -- SATA equivalents of the SCSI SES/SAF-TE devices. - Add some utility functions for SCSI SAF-TE devices access. Sponsored by: iXsystems, Inc.
Diffstat (limited to 'sbin/camcontrol')
-rw-r--r--sbin/camcontrol/camcontrol.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/sbin/camcontrol/camcontrol.c b/sbin/camcontrol/camcontrol.c
index 0bbb511..47fc791 100644
--- a/sbin/camcontrol/camcontrol.c
+++ b/sbin/camcontrol/camcontrol.c
@@ -456,7 +456,7 @@ getdevtree(void)
case DEV_MATCH_DEVICE: {
struct device_match_result *dev_result;
char vendor[16], product[48], revision[16];
- char tmpstr[256];
+ char fw[5], tmpstr[256];
dev_result =
&ccb.cdm.matches[i].result.device_result;
@@ -495,6 +495,25 @@ getdevtree(void)
sizeof(revision));
sprintf(tmpstr, "<%s %s>", product,
revision);
+ } else if (dev_result->protocol == PROTO_SEMB) {
+ struct sep_identify_data *sid;
+
+ sid = (struct sep_identify_data *)
+ &dev_result->ident_data;
+ cam_strvis(vendor, sid->vendor_id,
+ sizeof(sid->vendor_id),
+ sizeof(vendor));
+ cam_strvis(product, sid->product_id,
+ sizeof(sid->product_id),
+ sizeof(product));
+ cam_strvis(revision, sid->product_rev,
+ sizeof(sid->product_rev),
+ sizeof(revision));
+ cam_strvis(fw, sid->firmware_rev,
+ sizeof(sid->firmware_rev),
+ sizeof(fw));
+ sprintf(tmpstr, "<%s %s %s %s>",
+ vendor, product, revision, fw);
} else {
sprintf(tmpstr, "<>");
}
OpenPOWER on IntegriCloud