diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/AnsiTerm.cpp | 9 | ||||
-rw-r--r-- | util/ialarms.c | 2 | ||||
-rw-r--r-- | util/icmd.c | 2 | ||||
-rw-r--r-- | util/iconfig.c | 2 | ||||
-rw-r--r-- | util/idcmi.c | 2 | ||||
-rw-r--r-- | util/ievents.c | 17 | ||||
-rw-r--r-- | util/ifirewall.c | 2 | ||||
-rw-r--r-- | util/ifru.c | 2 | ||||
-rw-r--r-- | util/ifruset.c | 2 | ||||
-rw-r--r-- | util/igetevent.c | 2 | ||||
-rw-r--r-- | util/ihealth.c | 2 | ||||
-rw-r--r-- | util/ilan.c | 9 | ||||
-rw-r--r-- | util/ipicmg.c | 2 | ||||
-rw-r--r-- | util/ipmiutil.c | 2 | ||||
-rw-r--r-- | util/ireset.c | 2 | ||||
-rw-r--r-- | util/isel.c | 2 | ||||
-rw-r--r-- | util/iseltime.c | 2 | ||||
-rw-r--r-- | util/isensor.c | 6 | ||||
-rw-r--r-- | util/iserial.c | 2 | ||||
-rw-r--r-- | util/isol.c | 2 | ||||
-rw-r--r-- | util/itsol.c | 2 | ||||
-rw-r--r-- | util/iuser.c | 8 | ||||
-rw-r--r-- | util/iwdt.c | 2 | ||||
-rw-r--r-- | util/oem_asus.c | 4 | ||||
-rw-r--r-- | util/oem_dell.c | 13 | ||||
-rw-r--r-- | util/oem_fujitsu.c | 9 | ||||
-rw-r--r-- | util/oem_hp.c | 10 | ||||
-rw-r--r-- | util/oem_intel.c | 9 | ||||
-rw-r--r-- | util/oem_kontron.c | 9 | ||||
-rw-r--r-- | util/oem_lenovo.c | 37 | ||||
-rw-r--r-- | util/oem_newisys.c | 9 | ||||
-rw-r--r-- | util/oem_quanta.c | 9 | ||||
-rw-r--r-- | util/oem_sun.c | 2 | ||||
-rw-r--r-- | util/oem_supermicro.c | 9 | ||||
-rw-r--r-- | util/oem_supermicro.h | 2 |
35 files changed, 145 insertions, 62 deletions
diff --git a/util/AnsiTerm.cpp b/util/AnsiTerm.cpp index 750fd52..956ec98 100644 --- a/util/AnsiTerm.cpp +++ b/util/AnsiTerm.cpp @@ -1774,7 +1774,8 @@ CAnsiTerm::ProcessSGR(void) break; default: - assert(false); + dbglog("ERROR: bad SGR param %d (0x%02x)\n",index,index); + m_Attribute = kDefaultAttribute; break; } } @@ -1798,6 +1799,7 @@ CAnsiTerm::ProcessSM(void) { case 0: default: + dbglog("ERROR: bad private SM param %d\n",m_Parameters[0]); assert(false); break; case DECCKM: @@ -1846,8 +1848,9 @@ CAnsiTerm::ProcessSM(void) { case 20: m_bLineFeedNewLineMode = true; break; // LNM default: - dbglog("ProcessSM: param %d != 20\n",m_Parameters[0]); - assert(false); break; + dbglog("ProcessSM: param %d != 20\n",m_Parameters[0]); + assert(false); + break; } } } diff --git a/util/ialarms.c b/util/ialarms.c index 3b73885..7260356 100644 --- a/util/ialarms.c +++ b/util/ialarms.c @@ -75,7 +75,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* * Global variables */ -static char * progver = "3.03"; +static char * progver = "3.04"; static char * progname = "ialarms"; static char fdebug = 0; static char fbmctam = 0; diff --git a/util/icmd.c b/util/icmd.c index 2f62b00..ec467e7 100644 --- a/util/icmd.c +++ b/util/icmd.c @@ -78,7 +78,7 @@ extern void ipmi_lan_set_timeout(int ipmito, int tries, int pingto); /* * Global variables */ -static char * progver = "3.03"; +static char * progver = "3.04"; static char * progname = "icmd"; static char fdebug = 0; static char fquiet = 0; diff --git a/util/iconfig.c b/util/iconfig.c index d29dd8f..f7b9972 100644 --- a/util/iconfig.c +++ b/util/iconfig.c @@ -172,7 +172,7 @@ typedef struct /* * Global variables */ -static char * progver = "3.03"; +static char * progver = "3.04"; static char * progname = "iconfig"; static char fdebug = 0; static char fipmilan = 0; diff --git a/util/idcmi.c b/util/idcmi.c index 9382aa7..0cce3c0 100644 --- a/util/idcmi.c +++ b/util/idcmi.c @@ -62,7 +62,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "idcmi.h" static char * progname = "idcmi"; -static char * progver = "3.03"; +static char * progver = "3.04"; extern char fdebug; /*from ipmicmd.c*/ static uchar g_bus = PUBLIC_BUS; static uchar g_sa = BMC_SA; diff --git a/util/ievents.c b/util/ievents.c index dc49508..10b665b 100644 --- a/util/ievents.c +++ b/util/ievents.c @@ -76,7 +76,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define SELprintf printf #define SMS_SA 0x41 #define SMI_SA 0x21 -static char *progver = "3.03"; +static char *progver = "3.04"; static char *progname = "ievents"; static char fsensdesc = 0; /* 1= get extended sensor descriptions*/ static char fcanonical = 0; /* 1= show canonical, delimited output*/ @@ -1595,20 +1595,21 @@ int decode_sel_entry( uchar *pevt, char *outbuf, int szbuf) char fhave_sdr = 0; char mdesc[80]; /*used for oem memory description*/ int msz; + char *mfgstr; + int mfg; if (outbuf == NULL) return(ERR_BAD_PARAM); if (pevt == NULL) { outbuf[0] = 0; return(ERR_BAD_PARAM); } - get_mfgid(&vend,&prod); /*saved from ipmi_getdeviceid */ + get_mfgid(&vend,&prod); /*saved from ipmi_getdeviceid */ psel = (SEL_RECORD *)pevt; j = decode_sel_oem(vend,pevt,outbuf,szbuf,fsensdesc,fdebug); if (j == 0) return(0); /*successful, have the description*/ if (psel->record_type == RT_OEMIU) { /* 0xDB usu ipmiutil OEM string */ - int ix = 0; /* ipmiutil OEM event with 9-byte string */ pc = (uchar *)&psel->generator_id; /* offset 7 */ evtime = (uchar *)&psel->timestamp; @@ -1616,9 +1617,9 @@ int decode_sel_entry( uchar *pevt, char *outbuf, int szbuf) (evtime[2] << 16) + (evtime[3] << 24); fmt_time(eventTime, timebuf, sizeof(timebuf)); if (fcanonical) - sprintf(outbuf,"%04x %c %s %c %s %c %02x %c %06x %c %s %c OEM Event ", - psel->record_id, bdelim, timebuf, bdelim, - get_sev_str(sev), bdelim, psel->record_type, bdelim); + sprintf(outbuf,"%04x %c %s %c %s %c %02x %c OEM Event ", + psel->record_id, bdelim, timebuf, bdelim, + get_sev_str(sev), bdelim, psel->record_type, bdelim); else sprintf(outbuf,"%04x %s %s %02x OEM Event ", psel->record_id, timebuf, get_sev_str(sev), @@ -1633,8 +1634,6 @@ int decode_sel_entry( uchar *pevt, char *outbuf, int szbuf) outbuf[j++] = 0; } else if (psel->record_type == 0xDC) { /* OEM Record: these are usually Microsoft */ - char *mfgstr; - int mfg; evtime = (uchar *)&psel->timestamp; eventTime = evtime[0] + (evtime[1] << 8) + (evtime[2] << 16) + (evtime[3] << 24); @@ -1659,8 +1658,6 @@ int decode_sel_entry( uchar *pevt, char *outbuf, int szbuf) outbuf[j++] = '\n'; outbuf[j++] = 0; } else if (psel->record_type == 0xDD) { /* usu Intel OEM string */ - char *mfgstr; - int mfg; int ix = 0; /* Windows reboot reason string from MS ipmidrv.sys */ evtime = (uchar *)&psel->timestamp; diff --git a/util/ifirewall.c b/util/ifirewall.c index e3e7626..719d2b8 100644 --- a/util/ifirewall.c +++ b/util/ifirewall.c @@ -64,7 +64,7 @@ /* global variables */ static char * progname = "ifirewall"; -static char * progver = "3.03"; +static char * progver = "3.04"; static char fdebug = 0; static uchar g_bus = PUBLIC_BUS; static uchar g_sa = BMC_SA; diff --git a/util/ifru.c b/util/ifru.c index 6c3573c..c91fab2 100644 --- a/util/ifru.c +++ b/util/ifru.c @@ -116,7 +116,7 @@ extern int ipmi_kontronoem_main(void * intf, int argc, char ** argv); #endif static char *progname = "ifru"; -static char *progver = "3.03"; +static char *progver = "3.04"; static int vend_id = 0; static int prod_id = 0; static char fdebug = 0; diff --git a/util/ifruset.c b/util/ifruset.c index b62d885..d24b089 100644 --- a/util/ifruset.c +++ b/util/ifruset.c @@ -106,7 +106,7 @@ extern void fmt_time(time_t etime, char *buf, int bufsz); /*see ievents.c*/ #define IPROD_OEM 7 static char *progname = "ifruset"; -static char *progver = "3.03"; +static char *progver = "3.04"; static char fdebug = 0; static char fpicmg = 0; static char fonlybase = 0; diff --git a/util/igetevent.c b/util/igetevent.c index 9f8a2c0..40c5e4a 100644 --- a/util/igetevent.c +++ b/util/igetevent.c @@ -169,7 +169,7 @@ extern void free_sdr_cache(uchar *pret); /*see isensor.c*/ * Global variables */ static char * progname = "igetevent"; -static char * progver = "3.03"; +static char * progver = "3.04"; static char fdebug = 0; static char fipmilan = 0; static char frunonce = 0; diff --git a/util/ihealth.c b/util/ihealth.c index be5c57a..974fa95 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 = "3.03"; +static char * progver = "3.04"; static char fdebug = 0; static char fipmilan = 0; static char fcanonical = 0; diff --git a/util/ilan.c b/util/ilan.c index 6451ba8..6f63fe5 100644 --- a/util/ilan.c +++ b/util/ilan.c @@ -305,8 +305,8 @@ extern char *get_sensor_type_desc (uchar stype); /*from ievents.c */ /* * Global variables */ -static char *progver = "3.03"; -static char *progname = "ilan"; +static char * progname = "ilan"; +static char * progver = "3.04"; static char fdebug = 0; static char fipmilan = 0; static char fIPMI10 = 0; /* =1 if IPMI v1.0 or less */ @@ -4058,15 +4058,14 @@ PefDesc (int idx, uchar stype) #ifdef METACOMMAND -int -i_lan (int argc, char **argv) +int i_lan(int argc, char **argv) #else #ifdef WIN32 int __cdecl #else int #endif -main (int argc, char **argv) +main(int argc, char **argv) #endif { int ret; diff --git a/util/ipicmg.c b/util/ipicmg.c index 8019a3f..e463424 100644 --- a/util/ipicmg.c +++ b/util/ipicmg.c @@ -81,7 +81,7 @@ /* Global data */ static char * progname = "ipicmg"; -static char * progver = "3.03"; +static char * progver = "3.04"; static char fdebug = 0; static char fset_mc = 0; static uint8_t g_bus = PUBLIC_BUS; diff --git a/util/ipmiutil.c b/util/ipmiutil.c index 26b156a..ffddc86 100644 --- a/util/ipmiutil.c +++ b/util/ipmiutil.c @@ -57,7 +57,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "ipmiutil.h" static char *progname = "ipmiutil"; -static char *progver = "3.03"; +static char *progver = "3.04"; // static char fdebug = 0; /*int ipmiutil(int argc, char **argv); */ diff --git a/util/ireset.c b/util/ireset.c index 45133fe..3584cb1 100644 --- a/util/ireset.c +++ b/util/ireset.c @@ -108,7 +108,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* * Global variables */ -static char * progver = "3.03"; +static char * progver = "3.04"; static char * progname = "ireset"; static uchar ipmi_maj; static uchar ipmi_min; diff --git a/util/isel.c b/util/isel.c index a1d4fdb..9045d62 100644 --- a/util/isel.c +++ b/util/isel.c @@ -162,7 +162,7 @@ typedef struct #define RDATA_OFFSET 13 //byte offset to the record event data static char *progname = "isel"; -static char *progver = "3.03"; +static char *progver = "3.04"; #ifdef WIN32 #define IDXFILE "sel.idx" static char idxfile[80] = IDXFILE; diff --git a/util/iseltime.c b/util/iseltime.c index 3aa9f27..2f5c7e1 100644 --- a/util/iseltime.c +++ b/util/iseltime.c @@ -78,7 +78,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* * Global variables */ -static char * progver = "3.03"; +static char * progver = "3.04"; static char * progname = "iseltime"; static char fdebug = 0; static char fset = 0; diff --git a/util/isensor.c b/util/isensor.c index 3de3d38..69d901f 100644 --- a/util/isensor.c +++ b/util/isensor.c @@ -161,7 +161,7 @@ extern int decode_sensor_fujitsu(uchar *sdr,uchar *reading,char *pstring, extern int decode_sensor_sun(uchar *sdr,uchar *reading,char *pstring, int slen); /*see oem_sun.c*/ extern int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, - int slen); /*see oem_supermicro.c*/ + int slen, int fsimple); /*see oem_supermicro.c*/ extern int decode_sensor_quanta(uchar *sdr,uchar *reading,char *pstring, int slen); /*see oem_quanta.c*/ extern int decode_sensor_dell(uchar *sdr,uchar *reading,char *pstring, @@ -255,7 +255,7 @@ char *decode_entity_id(int id) { * Global Data ************************/ static char *progname = "isensor"; -static char *progver = "3.03"; +static char *progver = "3.04"; #ifdef WIN32 static char savefile[] = "%ipmiutildir%\\thresholds.cmd"; #else @@ -1952,7 +1952,7 @@ int decode_oem_sensor(uchar *sdr,uchar *reading,char *pstring,int slen) case VENDOR_MAGNUM: case VENDOR_SUPERMICRO: case VENDOR_SUPERMICROX: - rv = decode_sensor_supermicro(sdr, reading, pstring, slen); + rv = decode_sensor_supermicro(sdr, reading, pstring, slen, fsimple); break; case VENDOR_QUANTA: rv = decode_sensor_quanta(sdr, reading, pstring, slen); diff --git a/util/iserial.c b/util/iserial.c index 8bed75c..a087614 100644 --- a/util/iserial.c +++ b/util/iserial.c @@ -155,7 +155,7 @@ typedef struct /* * Global variables */ -static char * progver = "3.03"; +static char * progver = "3.04"; static char * progname = "iserial"; static int vend_id = 0; static int prod_id = 0; diff --git a/util/isol.c b/util/isol.c index 8bd5a2f..fab0994 100644 --- a/util/isol.c +++ b/util/isol.c @@ -165,7 +165,7 @@ void dbglog( char *pattn, ... ); /*local prototype*/ /* * Global variables */ -static char * progver = "3.03"; +static char * progver = "3.04"; static char * progname = "isol"; static char fdebug = 0; static char fpicmg = 0; diff --git a/util/itsol.c b/util/itsol.c index 8d5ba1b..6997ffe 100644 --- a/util/itsol.c +++ b/util/itsol.c @@ -98,7 +98,7 @@ int gettimeofday(struct timeval *tv, struct timezone *tz); extern int verbose; extern char fdebug; /*from ipmicmd.c*/ static char * progname = "itsol"; -static char * progver = "3.03"; +static char * progver = "3.04"; static uchar g_bus = PUBLIC_BUS; static uchar g_sa = BMC_SA; static uchar g_lun = BMC_LUN; diff --git a/util/iuser.c b/util/iuser.c index 7cbe661..e6a7b29 100644 --- a/util/iuser.c +++ b/util/iuser.c @@ -57,7 +57,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* global variables */ static char * progname = "iuser"; -static char * progver = "3.03"; +static char * progver = "3.04"; static char fdebug = 0; static char fcanonical = 0; static char bdelim = '|'; @@ -69,10 +69,12 @@ extern int verbose; /*see ipmilanplus.c*/ extern void lprintf(int level, const char * format, ...); /*ipmilanplus.c*/ -int GetUserInfo(uchar unum, uchar chan, uchar *enab, uchar *priv, char *uname, char fdebug); +/* from ilan.c */ +char *parse_priv(uchar c); +int DisableUser (int unum, uchar chan); int SetPasswd(int unum, char *uname, char *upswd, uchar chan, uchar priv); int GetBmcEthDevice(uchar lan_parm, uchar *pchan); -char *parse_priv(uchar c); +int GetUserInfo(uchar unum, uchar chan, uchar *enab, uchar *priv, char *uname, char fdebug); static void printf_user_usage(void) { diff --git a/util/iwdt.c b/util/iwdt.c index 820d57b..13253b3 100644 --- a/util/iwdt.c +++ b/util/iwdt.c @@ -100,7 +100,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* * Global variables */ -static char * progver = "3.03"; +static char * progver = "3.04"; static char * progname = "iwdt"; static char fdebug = 0; static char fdontlog = 0; diff --git a/util/oem_asus.c b/util/oem_asus.c index 24226b9..cd5c01e 100644 --- a/util/oem_asus.c +++ b/util/oem_asus.c @@ -60,8 +60,8 @@ extern uchar bitnum(ushort value); /*isensor.c*/ extern char fdebug; /*ipmicmd.c*/ void set_loglevel(int level); /*prototype */ -static char * progver = "3.02"; -static char * progname = "ioemasus"; +static char * progname = "iasusoem"; +static char * progver = "3.04"; static int verbose = 0; static uchar g_bus = PUBLIC_BUS; static uchar g_sa = BMC_SA; diff --git a/util/oem_dell.c b/util/oem_dell.c index f8caf9a..4f9a7ab 100644 --- a/util/oem_dell.c +++ b/util/oem_dell.c @@ -132,7 +132,7 @@ char NIC_Selection_Mode_String_12g[] [50] = { "shared with failover all loms" }; -static char * progver = "3.03"; +static char * progver = "3.04"; static char * progname = "idelloem"; static int verbose = 0; static char fdebug = 0; @@ -4476,10 +4476,9 @@ static int ipmi_print_power_cap(void* intf,uint8_t unit ) tempbtuphrconv=watt_to_btuphr_conversion(ipmipowercap.PowerCap); printf ("Power cap : %ld BTU/hr\n",tempbtuphrconv); }else{ - - printf ("Maximum power: %ld Watt\n",ipmipowercap.MaximumPowerConsmp); - printf ("Minimum power: %ld Watt\n",ipmipowercap.MinimumPowerConsmp); - printf ("Power cap : %ld Watt\n",ipmipowercap.PowerCap); + printf ("Maximum power: %d Watt\n",ipmipowercap.MaximumPowerConsmp); + printf ("Minimum power: %d Watt\n",ipmipowercap.MinimumPowerConsmp); + printf ("Power cap : %d Watt\n",ipmipowercap.PowerCap); } } return rc; @@ -5676,8 +5675,8 @@ char * get_dell_evt_desc(uchar *sel_rec, int *psev) { if(0x51 == version) { - snprintf(tmpdesc, SIZE_OF_DESC, "DIMM %s", ('A'+ data3)); - strcat(desc, tmpdesc); + snprintf(tmpdesc, SIZE_OF_DESC, "DIMM %c", (char)('A'+ data3)); + strcat(desc, tmpdesc); } else if( ((data2 >> 4) > 0x07) && ((data2 >> 4) != 0x0F)) { diff --git a/util/oem_fujitsu.c b/util/oem_fujitsu.c index 362df96..9a4783a 100644 --- a/util/oem_fujitsu.c +++ b/util/oem_fujitsu.c @@ -52,6 +52,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* extern void get_mfgid(int *vend, int *prod); * from ipmicmd.h*/ /* extern int get_lan_options(); * from ipmicmd.h */ +static char * progver = "3.04"; +static char * progname = "ifujitsuoem"; static char fdebug = 0; static char freadok = 1; #define ERRLED 0 /*GEL - red Global Error LED*/ @@ -770,4 +772,11 @@ int decode_sensor_fujitsu(uchar *sdr,uchar *reading,char *pstring, int slen) return(rv); } +#ifdef METACOMMAND +int i_fujitsuoem(int argc, char **argv) +{ + printf("%s ver %s\n", progname,progver); + return(0); +} +#endif /* end oem_fujitsu.c */ diff --git a/util/oem_hp.c b/util/oem_hp.c index b7f7d07..081ea6f 100644 --- a/util/oem_hp.c +++ b/util/oem_hp.c @@ -44,6 +44,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "ievents.h" #include "isensor.h" +static char * progver = "3.04"; +static char * progname = "ihpoem"; + static char *redund_str(uchar b) { char *pstr; @@ -153,4 +156,11 @@ void show_oemsdr_hp(uchar *sdr) return; } +#ifdef METACOMMAND +int i_hpoem(int argc, char **argv) +{ + printf("%s ver %s\n", progname,progver); + return(0); +} +#endif /* end oem_hp.c */ diff --git a/util/oem_intel.c b/util/oem_intel.c index 6f61010..bf21ec5 100644 --- a/util/oem_intel.c +++ b/util/oem_intel.c @@ -83,6 +83,8 @@ extern char fdebug; /*ipmicmd.c*/ /* * Global variables */ +static char * progver = "3.04"; +static char * progname = "iinteloem"; static char fRelayBits = 0; static uchar g_bus = PUBLIC_BUS; static uchar g_sa = BMC_SA; @@ -1893,4 +1895,11 @@ void show_enc_leds_intel(uchar val, int numd) else show_enc_leds_i2c(val, numd); } +#ifdef METACOMMAND +int i_inteloem(int argc, char **argv) +{ + printf("%s ver %s\n", progname,progver); + return(0); +} +#endif /* end oem_intel.c */ diff --git a/util/oem_kontron.c b/util/oem_kontron.c index 891075a..b8fedf7 100644 --- a/util/oem_kontron.c +++ b/util/oem_kontron.c @@ -73,6 +73,8 @@ typedef uint32_t socklen_t; #define FRU_TYPE_COMPONENT 0x01 #define FRU_TYPE_BASEBOARD 0x07 +static char * progver = "3.04"; +static char * progname = "ikontronoem"; const struct valstr ktc5520_post[] = { /*from EAS*/ { 0x0003, "Start POST Init" }, { 0x0004, "Check CMOS" }, @@ -1103,4 +1105,11 @@ int decode_sensor_kontron(uchar *sdr,uchar *reading,char *pstring, int slen) return(rv); } +#ifdef METACOMMAND +int i_kontronoem(int argc, char **argv) +{ + printf("%s ver %s\n", progname,progver); + return(0); +} +#endif /* end oem_kontron.c */ diff --git a/util/oem_lenovo.c b/util/oem_lenovo.c index a1162bb..dc15a5d 100644 --- a/util/oem_lenovo.c +++ b/util/oem_lenovo.c @@ -61,8 +61,8 @@ extern uchar bitnum(ushort value); /*isensor.c*/ extern char fdebug; /*ipmicmd.c*/ void set_loglevel(int level); /*prototype */ -static char * progver = "3.02"; -static char * progname = "ioemlenovo"; +static char * progver = "3.04"; +static char * progname = "ilenovooem"; static int verbose = 0; static uchar g_bus = PUBLIC_BUS; static uchar g_sa = BMC_SA; @@ -92,6 +92,7 @@ int decode_sensor_lenovo(uchar *sdr,uchar *reading,char *pstring, int slen) ushort rval; char *pstr = NULL; int b; + int vend, prod; if (sdr == NULL || reading == NULL) return(rv); if (pstring == NULL || slen == 0) return(rv); @@ -103,11 +104,12 @@ int decode_sensor_lenovo(uchar *sdr,uchar *reading,char *pstring, int slen) etype = sdr[13]; rval = reading[2] | ((reading[3] & 0x7f) << 8); b = bitnum(rval); - if (fdebug) printf("oem_lenovo: sensor type=%x evt=%x entity=%x rval=%04x\n", - stype,etype,entity,rval); + get_mfgid(&vend,&prod); /*saved from ipmi_getdeviceid */ + if (fdebug) printf("oem_lenovo: mfg=%04x:%04x sensor type=%x evt=%x entity=%x rval=%04x\n", + vend,prod,stype,etype,entity,rval); switch(stype) { - case 0x07: /* All CPUs */ - if (etype == 0x6F) { + case 0x07: /* CPU sensor type */ + if ((etype == 0x6F) && (entity == 25)) { /*All CPUs*/ switch(b) { case 0x00: pstr = "OK"; break; case 0x02: pstr = "BIST_Fail"; break; @@ -118,6 +120,28 @@ int decode_sensor_lenovo(uchar *sdr,uchar *reading,char *pstring, int slen) } rv = 0; } + else if ((etype == 0x6F) && (entity == 3)) { /*CPU status*/ + /* Special CPU status reported on IBM/Lenovo */ + switch(rval) { + case 0x00: pstr = "Absent"; break; + case 0x80: pstr = "Present"; break; + default: pstr = "Error"; break; + } + rv = 0; + } + break; + case 0x0C: /* DIMM slot status */ + /* Special DIMM status reported on IBM/Lenovo */ + /* IBM x3650 M2 (0x0002, 0x00dc) and + * Lenovo x3650 M4 (0x4f4d, 0x0143) */ + if (etype == 0x6F) { + switch(rval) { + case 0x00: pstr = "Absent"; break; + case 0x40: pstr = "Present"; break; + default: pstr = "Error"; break; + } + rv = 0; + } break; case 0x0D: /* Disk Drive slots */ if (etype == 0x6F) { @@ -204,6 +228,7 @@ int decode_sensor_lenovo(uchar *sdr,uchar *reading,char *pstring, int slen) rv = 0; } break; + default: break; } if (rv == 0) snprintf(pstring,slen,"%s",pstr); diff --git a/util/oem_newisys.c b/util/oem_newisys.c index dd4d759..6b21e1b 100644 --- a/util/oem_newisys.c +++ b/util/oem_newisys.c @@ -43,6 +43,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "ipmicmd.h" #include "ievents.h" +static char * progver = "3.04"; +static char * progname = "inewisysoem"; static char fdebug = 0; static uchar g_bus = PUBLIC_BUS; static uchar g_sa = BMC_SA; @@ -126,4 +128,11 @@ int decode_sel_newisys(uchar *evt, char *outbuf, int outsz, char fdesc, return rv; } +#ifdef METACOMMAND +int i_newisysoem(int argc, char **argv) +{ + printf("%s ver %s\n", progname,progver); + return(0); +} +#endif /* end oem_newisys.c */ diff --git a/util/oem_quanta.c b/util/oem_quanta.c index a0ee3bb..a6cfd6a 100644 --- a/util/oem_quanta.c +++ b/util/oem_quanta.c @@ -45,6 +45,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. extern int decode_sensor_intel_nm(uchar *sdr,uchar *reading, char *pstring,int slen); /*oem_intel.c*/ +static char * progver = "3.04"; +static char * progname = "iquantaoem"; static char fdbg = 0; /* @@ -139,4 +141,11 @@ int decode_sel_quanta(uchar *evt, char *outbuf, int outsz, char fdesc, return(rv); } +#ifdef METACOMMAND +int i_quantaoem(int argc, char **argv) +{ + printf("%s ver %s\n", progname,progver); + return(0); +} +#endif /* end oem_quanta.c */ diff --git a/util/oem_sun.c b/util/oem_sun.c index 1d25301..8aa211b 100644 --- a/util/oem_sun.c +++ b/util/oem_sun.c @@ -109,7 +109,7 @@ static const struct valstr sunoem_led_mode_optvals[] = { /* global variables */ static char * progname = "isunoem"; -static char * progver = "3.03"; +static char * progver = "3.04"; static char fdebug = 0; static uchar g_bus = PUBLIC_BUS; static uchar g_sa = BMC_SA; diff --git a/util/oem_supermicro.c b/util/oem_supermicro.c index 165bf88..a480b7f 100644 --- a/util/oem_supermicro.c +++ b/util/oem_supermicro.c @@ -68,7 +68,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. void set_loglevel(int level); /*prototype */ extern char fsm_debug; /*mem_if.c*/ -static char * progver = "3.03"; +static char * progver = "3.04"; static char * progname = "ismcoem"; static int verbose = 0; static char fdebug = 0; @@ -414,7 +414,8 @@ int decode_threshold_supermicro(uchar rval, uchar *thresh) * non-zero otherwise, to use default interpretations. * pstring = contains the sensor reading interpretation string (if rv==0) */ -int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, int slen) +int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, int slen, + int fsimple) { int i, rv = -1; uchar stype, etype, snum; @@ -455,7 +456,9 @@ int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, int slen) sdr01 = (SDR01REC *)sdr; val = RawToFloat(reading[0],sdr); typestr = get_unit_type(sdr01->sens_units,sdr01->sens_base,sdr01->sens_mod, 0); - snprintf(pstring, slen, "%s %.2f %s",pstr,val,typestr); + if (fsimple) + snprintf(pstring, slen, "%s | %.2f %s",pstr,val,typestr); + else snprintf(pstring, slen, "%s %.2f %s",pstr,val,typestr); return(rv); } switch(stype) { diff --git a/util/oem_supermicro.h b/util/oem_supermicro.h index daf08d6..c8f9147 100644 --- a/util/oem_supermicro.h +++ b/util/oem_supermicro.h @@ -48,7 +48,7 @@ int oem_supermicro_get_lan_port(uchar *val); int oem_supermicro_set_lan_port(uchar val); char *oem_supermicro_lan_port_string(uchar val); -int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, int slen); +int decode_sensor_supermicro(uchar *sdr,uchar *reading,char *pstring, int slen, int fsimple); int decode_mem_supermicro(int prod, uchar b2, uchar b3, char *desc, int *psz); int decode_sel_supermicro(uchar *evt, char *outbuf, int outsz, char fdesc, char fdebug); |