summaryrefslogtreecommitdiffstats
path: root/usr.sbin/mfiutil/mfi_show.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/mfiutil/mfi_show.c')
-rw-r--r--usr.sbin/mfiutil/mfi_show.c30
1 files changed, 23 insertions, 7 deletions
diff --git a/usr.sbin/mfiutil/mfi_show.c b/usr.sbin/mfiutil/mfi_show.c
index 06721c2..6bb8612 100644
--- a/usr.sbin/mfiutil/mfi_show.c
+++ b/usr.sbin/mfiutil/mfi_show.c
@@ -40,9 +40,11 @@
#include <unistd.h>
#include "mfiutil.h"
+static const char* foreign_state = " (FOREIGN)";
+
MFI_TABLE(top, show);
-static void
+void
format_stripe(char *buf, size_t buflen, uint8_t stripe)
{
@@ -291,7 +293,7 @@ show_battery(int ac, char **av __unused)
}
MFI_COMMAND(show, battery, show_battery);
-static void
+void
print_ld(struct mfi_ld_info *info, int state_len)
{
struct mfi_ld_params *params = &info->ld_config.params;
@@ -312,19 +314,24 @@ print_ld(struct mfi_ld_info *info, int state_len)
mfi_ldstate(params->state));
}
-static void
+void
print_pd(struct mfi_pd_info *info, int state_len)
{
const char *s;
- char buf[6];
+ char buf[256];
humanize_number(buf, sizeof(buf), info->raw_size * 512, "",
HN_AUTOSCALE, HN_B | HN_NOSPACE |HN_DECIMAL);
printf("(%6s) ", buf);
+ if (info->state.ddf.v.pd_type.is_foreign) {
+ sprintf(buf, "%s%s", mfi_pdstate(info->fw_state), foreign_state);
+ s = buf;
+ } else
+ s = mfi_pdstate(info->fw_state);
if (state_len > 0)
- printf("%-*s", state_len, mfi_pdstate(info->fw_state));
+ printf("%-*s", state_len, s);
else
- printf("%s", mfi_pdstate(info->fw_state));
+ printf("%s",s);
s = mfi_pd_inq_string(info);
if (s != NULL)
printf(" %s", s);
@@ -560,6 +567,8 @@ show_drives(int ac, char **av __unused)
goto error;
}
len = strlen(mfi_pdstate(info.fw_state));
+ if (info.state.ddf.v.pd_type.is_foreign)
+ len += strlen(foreign_state);
if (len > state_len)
state_len = len;
}
@@ -757,7 +766,7 @@ show_progress(int ac, char **av __unused)
printf("drive %s ", mfi_drive_name(NULL, device_id,
MFI_DNAME_DEVICE_ID|MFI_DNAME_HONOR_OPTS));
mfi_display_progress("Clear", &pinfo.prog_info.clear);
- busy = 1;
+
}
}
@@ -770,3 +779,10 @@ show_progress(int ac, char **av __unused)
return (0);
}
MFI_COMMAND(show, progress, show_progress);
+
+static int
+show_foreign(int ac, char **av)
+{
+ return(display_format(ac, av, 0/*normal display*/, MFI_DCMD_CFG_FOREIGN_DISPLAY));
+}
+MFI_COMMAND(show, foreign, show_foreign);
OpenPOWER on IntegriCloud