diff options
Diffstat (limited to 'usr.sbin/mfiutil/mfi_show.c')
-rw-r--r-- | usr.sbin/mfiutil/mfi_show.c | 60 |
1 files changed, 38 insertions, 22 deletions
diff --git a/usr.sbin/mfiutil/mfi_show.c b/usr.sbin/mfiutil/mfi_show.c index abd1110..0cc1633 100644 --- a/usr.sbin/mfiutil/mfi_show.c +++ b/usr.sbin/mfiutil/mfi_show.c @@ -54,7 +54,7 @@ show_adapter(int ac, char **av) { struct mfi_ctrl_info info; char stripe[5]; - int fd, comma; + int error, fd, comma; if (ac != 1) { warnx("show adapter: extra arguments"); @@ -63,13 +63,15 @@ show_adapter(int ac, char **av) fd = mfi_open(mfi_unit); if (fd < 0) { + error = errno; warn("mfi_open"); - return (errno); + return (error); } if (mfi_ctrl_get_info(fd, &info, NULL) < 0) { + error = errno; warn("Failed to get controller info"); - return (errno); + return (error); } printf("mfi%d Adapter:\n", mfi_unit); printf(" Product Name: %.80s\n", info.product_name); @@ -137,7 +139,7 @@ show_battery(int ac, char **av) struct mfi_bbu_capacity_info cap; struct mfi_bbu_design_info design; uint8_t status; - int fd; + int error, fd; if (ac != 1) { warnx("show battery: extra arguments"); @@ -146,8 +148,9 @@ show_battery(int ac, char **av) fd = mfi_open(mfi_unit); if (fd < 0) { + error = errno; warn("mfi_open"); - return (errno); + return (error); } if (mfi_dcmd_command(fd, MFI_DCMD_BBU_GET_CAPACITY_INFO, &cap, @@ -156,14 +159,16 @@ show_battery(int ac, char **av) printf("mfi%d: No battery present\n", mfi_unit); return (0); } + error = errno; warn("Failed to get capacity info"); - return (errno); + return (error); } if (mfi_dcmd_command(fd, MFI_DCMD_BBU_GET_DESIGN_INFO, &design, sizeof(design), NULL, 0, NULL) < 0) { + error = errno; warn("Failed to get design info"); - return (errno); + return (error); } printf("mfi%d: Battery State:\n", mfi_unit); @@ -242,7 +247,7 @@ show_config(int ac, char **av) struct mfi_pd_info pinfo; uint16_t device_id; char *p; - int fd, i, j; + int error, fd, i, j; if (ac != 1) { warnx("show config: extra arguments"); @@ -251,14 +256,16 @@ show_config(int ac, char **av) fd = mfi_open(mfi_unit); if (fd < 0) { + error = errno; warn("mfi_open"); - return (errno); + return (error); } /* Get the config from the controller. */ if (mfi_config_read(fd, &config) < 0) { + error = errno; warn("Failed to get config"); - return (errno); + return (error); } /* Dump out the configuration. */ @@ -337,8 +344,8 @@ show_volumes(int ac, char **av) { struct mfi_ld_list list; struct mfi_ld_info info; + int error, fd; u_int i, len, state_len; - int fd; if (ac != 1) { warnx("show volumes: extra arguments"); @@ -347,14 +354,16 @@ show_volumes(int ac, char **av) fd = mfi_open(mfi_unit); if (fd < 0) { + error = errno; warn("mfi_open"); - return (errno); + return (error); } /* Get the logical drive list from the controller. */ if (mfi_ld_get_list(fd, &list, NULL) < 0) { + error = errno; warn("Failed to get volume list"); - return (errno); + return (error); } /* List the volumes. */ @@ -376,9 +385,10 @@ show_volumes(int ac, char **av) for (i = 0; i < list.ld_count; i++) { if (mfi_ld_get_info(fd, list.ld_list[i].ld.v.target_id, &info, NULL) < 0) { + error = errno; warn("Failed to get info for volume %d", list.ld_list[i].ld.v.target_id); - return (errno); + return (error); } printf("%6s ", mfi_volume_name(fd, list.ld_list[i].ld.v.target_id)); @@ -416,7 +426,7 @@ show_drives(int ac, char **av) struct mfi_pd_list *list; struct mfi_pd_info info; u_int i, len, state_len; - int fd; + int error, fd; if (ac != 1) { warnx("show drives: extra arguments"); @@ -425,13 +435,15 @@ show_drives(int ac, char **av) fd = mfi_open(mfi_unit); if (fd < 0) { + error = errno; warn("mfi_open"); - return (errno); + return (error); } if (mfi_pd_get_list(fd, &list, NULL) < 0) { + error = errno; warn("Failed to get drive list"); - return (errno); + return (error); } /* Walk the list of drives to determine width of state column. */ @@ -442,9 +454,10 @@ show_drives(int ac, char **av) if (mfi_pd_get_info(fd, list->addr[i].device_id, &info, NULL) < 0) { + error = errno; warn("Failed to fetch info for drive %u", list->addr[i].device_id); - return (errno); + return (error); } len = strlen(mfi_pdstate(info.fw_state)); if (len > state_len) @@ -462,9 +475,10 @@ show_drives(int ac, char **av) /* Fetch details for this drive. */ if (mfi_pd_get_info(fd, list->addr[i].device_id, &info, NULL) < 0) { + error = errno; warn("Failed to fetch info for drive %u", list->addr[i].device_id); - return (errno); + return (error); } print_pd(&info, state_len, 1); @@ -511,7 +525,7 @@ show_firmware(int ac, char **av) { struct mfi_ctrl_info info; struct mfi_info_component header; - int fd; + int error, fd; u_int i; if (ac != 1) { @@ -521,13 +535,15 @@ show_firmware(int ac, char **av) fd = mfi_open(mfi_unit); if (fd < 0) { + error = errno; warn("mfi_open"); - return (errno); + return (error); } if (mfi_ctrl_get_info(fd, &info, NULL) < 0) { + error = errno; warn("Failed to get controller info"); - return (errno); + return (error); } if (info.package_version[0] != '\0') |