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.c60
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')
OpenPOWER on IntegriCloud