diff options
Diffstat (limited to 'util/ihealth.c')
-rw-r--r-- | util/ihealth.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/util/ihealth.c b/util/ihealth.c index 6f6f0e1..466131e 100644 --- a/util/ihealth.c +++ b/util/ihealth.c @@ -82,7 +82,7 @@ extern int oem_supermicro_get_firmware_str(char *pstr, int sz); /*oem_supermicro * Global variables */ static char * progname = "ihealth"; -static char * progver = "2.93"; +static char * progver = "2.94"; static char fdebug = 0; static char fipmilan = 0; static char fcanonical = 0; @@ -725,8 +725,10 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec) case 1603: prodstr = "(X9SPU)"; break; /*0x0643*/ case 1643: prodstr = "(X9SRL)"; break; /*0x066b*/ case 1797: prodstr = "(X9DR7)"; break; /*0x0705*/ - case 43025: prodstr = "(H8DGU)"; break; + case 4520: prodstr = "(H8DGU)"; break; + case 43025: prodstr = "(H8DGU-F)"; break; case 43707: prodstr = "(X8DTH)"; break; + case 48145: prodstr = "(H8DG6)"; break; default: prodstr = ""; break; } if (!fipmilan) lan_ch_restrict = 1; /*fw bug, gets 0xd4 locally*/ @@ -737,6 +739,14 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec) default: prodstr = ""; break; } break; + case VENDOR_IBM: /*=0x0002*/ + switch(prod) { /* show product names for some */ + case 0x000e: prodstr = "(x3755)"; break; + case 0x00dc: prodstr = "(x3650)"; break; + case 0x8848: prodstr = "(eServer 360S)"; break; + default: prodstr = ""; break; + } + break; default: prodstr = ""; break; @@ -771,7 +781,8 @@ int GetPowerOnHours(unsigned int *val) if (rc == 0 && cc == 0) { /* show the hours (32-bits) */ hrs = resp[1] | (resp[2] << 8) | (resp[3] << 16) | (resp[4] << 24); - if (resp[0] == 60) /*normal*/ i = 1; + /* 60=normal, more is OOB, so avoid div-by-zero*/ + if ((resp[0] <= 0) || (resp[0] >= 60)) i = 1; else { i = 60 / resp[0]; hrs = hrs / i; |