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 >
This commit is contained in:
parent
bff57f7053
commit
cb03a5029b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=294042
@ -549,6 +549,23 @@ g_disk_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, struct g
|
||||
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();
|
||||
|
Loading…
Reference in New Issue
Block a user