diff options
Diffstat (limited to 'usr.sbin/mfiutil/mfi_show.c')
-rw-r--r-- | usr.sbin/mfiutil/mfi_show.c | 30 |
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); |