Author: rpokala
Date: Thu Jan 14 21:52:21 2016
New Revision: 294042
URL: https://svnweb.freebsd.org/changeset/base/294042

Log:
  Add rotationrate to geom disk dumpconf
  
  Parse and report the nominal rotation rate reported by the drive.
  
  Reviewed by:  sbruno, jhb
  Approved by:  jhb
  MFC after:    1 week
  Differential Revision:        https://reviews.freebsd.org/D4483
  Requested by: Kevin Bowling < kevin.bowling @ kev009.com >

Modified:
  head/sys/geom/geom_disk.c

Modified: head/sys/geom/geom_disk.c
==============================================================================
--- head/sys/geom/geom_disk.c   Thu Jan 14 21:39:10 2016        (r294041)
+++ head/sys/geom/geom_disk.c   Thu Jan 14 21:52:21 2016        (r294042)
@@ -549,6 +549,23 @@ g_disk_dumpconf(struct sbuf *sb, const c
                    indent, dp->d_fwheads);
                sbuf_printf(sb, "%s<fwsectors>%u</fwsectors>\n",
                    indent, dp->d_fwsectors);
+
+               /*
+                * "rotationrate" is a little complicated, because the value
+                * returned by the drive might not be the RPM; 0 and 1 are
+                * special cases, and there's also a valid range.
+                */
+               sbuf_printf(sb, "%s<rotationrate>", indent);
+               if (dp->d_rotation_rate == 0)           /* Old drives don't */
+                       sbuf_printf(sb, "unknown");     /* report RPM. */
+               else if (dp->d_rotation_rate == 1)      /* Since 0 is used */
+                       sbuf_printf(sb, "0");           /* above, SSDs use 1. */
+               else if ((dp->d_rotation_rate >= 0x041) &&
+                   (dp->d_rotation_rate <= 0xfffe))
+                       sbuf_printf(sb, "%u", dp->d_rotation_rate);
+               else
+                       sbuf_printf(sb, "invalid");
+               sbuf_printf(sb, "</rotationrate>\n");
                if (dp->d_getattr != NULL) {
                        buf = g_malloc(DISK_IDENT_SIZE, M_WAITOK);
                        bp = g_alloc_bio();
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to