summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authorsmh <smh@FreeBSD.org>2014-04-24 02:16:23 +0000
committersmh <smh@FreeBSD.org>2014-04-24 02:16:23 +0000
commit0c70f2535bbda4a3a831616e33c53d369f369479 (patch)
treefa00abd6d236db0234bf3fd2cf6750965422f7c7 /sbin
parent4c3c62dfba3f4dc0246129927ddb3b874ea16f07 (diff)
downloadFreeBSD-src-0c70f2535bbda4a3a831616e33c53d369f369479.zip
FreeBSD-src-0c70f2535bbda4a3a831616e33c53d369f369479.tar.gz
Add information about supported NCQ functionality to camcontrol identify.
MFC after: 2 weeks
Diffstat (limited to 'sbin')
-rw-r--r--sbin/camcontrol/camcontrol.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/sbin/camcontrol/camcontrol.c b/sbin/camcontrol/camcontrol.c
index 90a54ff..6783bd3 100644
--- a/sbin/camcontrol/camcontrol.c
+++ b/sbin/camcontrol/camcontrol.c
@@ -1214,6 +1214,18 @@ atahpa_print(struct ata_params *parm, u_int64_t hpasize, int header)
}
}
+static int
+atasata(struct ata_params *parm)
+{
+
+
+ if (parm->satacapabilities != 0xffff &&
+ parm->satacapabilities != 0x0000)
+ return 1;
+
+ return 0;
+}
+
static void
atacapprint(struct ata_params *parm)
{
@@ -1370,6 +1382,17 @@ atacapprint(struct ata_params *parm)
ATA_QUEUE_LEN(parm->queue) + 1);
} else
printf("no\n");
+
+ printf("NCQ Queue Management %s\n", atasata(parm) &&
+ parm->satacapabilities2 & ATA_SUPPORT_NCQ_QMANAGEMENT ?
+ "yes" : "no");
+ printf("NCQ Streaming %s\n", atasata(parm) &&
+ parm->satacapabilities2 & ATA_SUPPORT_NCQ_STREAM ?
+ "yes" : "no");
+ printf("Receive & Send FPDMA Queued %s\n", atasata(parm) &&
+ parm->satacapabilities2 & ATA_SUPPORT_RCVSND_FPDMA_QUEUED ?
+ "yes" : "no");
+
printf("SMART %s %s\n",
parm->support.command1 & ATA_SUPPORT_SMART ? "yes" : "no",
parm->enabled.command1 & ATA_SUPPORT_SMART ? "yes" : "no");
@@ -1418,6 +1441,9 @@ atacapprint(struct ata_params *parm)
printf("unload %s %s\n",
parm->support.extension & ATA_SUPPORT_UNLOAD ? "yes" : "no",
parm->enabled.extension & ATA_SUPPORT_UNLOAD ? "yes" : "no");
+ printf("general purpose logging %s %s\n",
+ parm->support.extension & ATA_SUPPORT_GENLOG ? "yes" : "no",
+ parm->enabled.extension & ATA_SUPPORT_GENLOG ? "yes" : "no");
printf("free-fall %s %s\n",
parm->support2 & ATA_SUPPORT_FREEFALL ? "yes" : "no",
parm->enabled2 & ATA_SUPPORT_FREEFALL ? "yes" : "no");
OpenPOWER on IntegriCloud