summaryrefslogtreecommitdiff
path: root/util/ihealth.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/ihealth.c')
-rw-r--r--util/ihealth.c17
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;