diff options
Diffstat (limited to 'util')
| -rw-r--r-- | util/Makefile.am | 111 | ||||
| -rw-r--r-- | util/Makefile.in | 111 | ||||
| -rw-r--r-- | util/ievents.c | 2 | ||||
| -rw-r--r-- | util/ifru.c | 45 | ||||
| -rw-r--r-- | util/ifruset.c | 37 | ||||
| -rw-r--r-- | util/ipmicmd.c | 9 | ||||
| -rw-r--r-- | util/ipmilan.h | 3 | ||||
| -rw-r--r-- | util/ipmiutil.c | 2 | ||||
| -rw-r--r-- | util/isel.c | 2 | ||||
| -rw-r--r-- | util/isensor.c | 5 | 
10 files changed, 205 insertions, 122 deletions
| diff --git a/util/Makefile.am b/util/Makefile.am index f8f0bab..e37e0ef 100644 --- a/util/Makefile.am +++ b/util/Makefile.am @@ -1,11 +1,11 @@  localedir = $(datadir)/locale -INCLUDES = -I..  OS_CF = @OS_CFLAGS@ @CROSS_CFLAGS@  OS_LF = @OS_LFLAGS@ @CROSS_LFLAGS@ -AM_CPPFLAGS = $(OS_CF) -DLOCALEDIR=\"$(localedir)\"  +AM_CPPFLAGS = $(OS_CF) -DLOCALEDIR=\"$(localedir)\" -I..  AM_CPPFLAGS += @IA64_CFLAGS@ @GPL_CFLAGS@  LDADD = $(OS_LF) +# usu LD_SAMX = ../lib/libipmi_lanplus.a -lcrypto  LDSAM = $(OS_LF) @LD_SAMX@  CFLAGS_SAMX = -O2 -g -I. -I.. $(OS_CF) @LANPLUS_CFLAGS@  CFLAGS_SAM  = -O2 -g -I. -I.. $(OS_CF)  @@ -22,10 +22,15 @@ CMDMOD += md5.c md2.c ipmilan.c  CMDMOD += ipmilanplus.c  # CMDMOD = ipmicmd.c mem_if.c @OS_DRIVERS@  # am: configure substitutions are not allowed in _SOURCES variables -LIBOBJ = ipmicmd.o mem_if.o ipmidir.o imbapi.o ipmimv.o ipmild.o ipmibmc.o ipmilipmi.o subs.o md5.o md2.o $(tmpobj)/ipmilan.o $(tmpobj)/ipmilanplus.o @LIBSENSORS@ +TMPOBJL =  $(tmpobj)/ipmilanL.o $(tmpobj)/ipmilanplusL.o +TMPOBJA =  $(tmpobj)/ipmilanA.o $(tmpobj)/ipmilanplusA.o +LIBOBJ = ipmicmd.o mem_if.o ipmidir.o imbapi.o ipmimv.o ipmild.o ipmibmc.o ipmilipmi.o subs.o md5.o md2.o @LIBSENSORS@  OEMMOD = oem_kontron.c oem_fujitsu.c oem_intel.c oem_sun.c oem_supermicro.c oem_dell.c oem_quanta.c oem_hp.c oem_newisys.c oem_lenovo.c oem_asus.c iekanalyzer.c +# usu SAM2OBJ = isensor2.o ievents2.o  L2OBJ = @SAM2OBJ@ +# To build ipmiutil, need to use METACFLAGS for each .c/.o +  AM_CPPFLAGS += -I. -I.. -DMETACOMMAND   METASOURCE = ipmiutil.c ialarms.c ihealth.c ievents.c ifru.c ifru_picmg.c igetevent.c ireset.c icmd.c ilan.c isensor.c isel.c iserial.c iwdt.c isol.c idiscover.c iconfig.c ipicmg.c ifirewall.c ifwum.c ihpm.c itsol.c idcmi.c iuser.c $(OEMMOD) $(CMDMOD)   LDADD += -lpthread  @@ -77,60 +82,55 @@ libimbapi.a:	imbapi.c  	$(RANLIB) libimbapi.a  	rm -f $(tmpobj)/imbapi.o +$(tmpobj)/ipmilanplusL.o:	ipmilanplus.c +	mkdir -p $(tmpobj) +	$(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplusL.o -c ipmilanplus.c;  + +$(tmpobj)/ipmilanL.o: 	ipmilan.c +	mkdir -p $(tmpobj) +	$(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanL.o -c ipmilan.c;  + +$(tmpobj)/ipmilanplusA.o:	ipmilanplus.c +	mkdir -p $(tmpobj) +	$(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplusA.o -c ipmilanplus.c;  + +$(tmpobj)/ipmilanA.o: 	ipmilan.c +	mkdir -p $(tmpobj) +	$(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanA.o -c ipmilan.c;  +  # Build a lib to support all of the IPMI drivers (libipmiutil.a)  # If LANPLUS_SAM = yes, include LANPLUS_OBJ, else do not.  # See configure --enable-liblanplus to change this -$(DEV_LIB):	$(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ -	mkdir -p $(tmpobj) +$(DEV_LIB):	$(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ $(TMPOBJL) $(TMPOBJA)   	if [ "x@LANPLUS_SAM@" = "xyes" ]; then \ -	   $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ -	   $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \  	   ar x @LANPLUS_LIB@ ; \ -	   $(AR) cru $(DEV_LIB) $(LIBOBJ) $(LANPLUS_OBJ); \ +	   $(AR) cru $(DEV_LIB) $(LIBOBJ) $(TMPOBJL) $(LANPLUS_OBJ); \  	   $(RANLIB) $(DEV_LIB); \  	else   \ -	   $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ -	   $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ -	   $(AR) cru $(DEV_LIB) $(LIBOBJ) ; \ +	   $(AR) cru $(DEV_LIB) $(LIBOBJ) $(TMPOBJA) ; \  	   $(RANLIB) $(DEV_LIB) ; \  	fi  -$(SHR_LIB):	$(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ -	mkdir -p $(tmpobj) +$(SHR_LIB):	$(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ $(TMPOBJL) $(TMPOBJA)   	if [ "x@LANPLUS_SAM@" = "xyes" ]; then \ -	   $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ -	   $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \  	   ar x @LANPLUS_LIB@ ; \ -	   $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(LANPLUS_OBJ); \ +	   $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(TMPOBJL) $(LANPLUS_OBJ); \  	else \ -	   $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ -	   $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ -	   $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) ; \ +	   $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(TMPOBJA) ; \  	fi   $(SHR_BLIB):	$(SHR_LIB)  	ln -s $(SHR_LIB) $(SHR_BLIB) -# To build ipmiutil, need to use METACFLAGS for each .c/.o -  idiscover$(EXEEXT):	idiscover.c  	$(CC) $(CFLAGS_SAM) $(LDFLAGS) $(OS_LF) -o idiscover idiscover.c -ipmimv: 	ipmimv.c +ipmimv$(EXEEXT): 	ipmimv.c  	$(CC) $(CFLAGS_SAM) $(LDFLAGS) -DTEST_BIN -o ipmimv ipmimv.c  ievents$(EXEEXT):         ievents.c  	$(CC) $(CFLAGS_SAM) $(LDFLAGS) -DALONE -o ievents ievents.c  -ipmi_sample:	$(DEV_LIB) ipmi_sample.c isensor.c ievents.c -	$(CC) $(CFLAGS_SAM) -c ipmi_sample.c -	$(CC) -g -O2 -o ipmi_sample ipmi_sample.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) - -ialarms_enc:	$(DEV_LIB) ialarms.c oem_intel.c -	$(CC) $(CFLAGS_SAM) -DTEST_ENC -o ialarms2.o -c ialarms.c -	$(CC) $(CFLAGS_SAM) -DNO_EVENTS -o oem_intel2.o -c oem_intel.c -	$(CC) -g -O2 -o ialarms_enc ialarms2.o oem_intel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) -  isensor2.o:	isensor.c  	$(CC) $(CFLAGS_SAM) -o isensor2.o -c isensor.c  @@ -140,32 +140,59 @@ ievents2.o:	ievents.c  ifru_picmg2.o:	ifru_picmg.c  	$(CC) $(CFLAGS_SAM) -o ifru_picmg2.o -c ifru_picmg.c -# To build ipmi_sample with GET_SENSORS enabled, need isensors.o, ievents.o  -# Note that this does not include oem_intel, etc. for OEM SEL decoding. -ipmi_sample2:	$(DEV_LIB) ipmi_sample.c ifru.c isel.c ifru_picmg2.o $(L2OBJ) -	$(CC) $(CFLAGS_SAM) -D GET_SENSORS -D GET_FRU -o ipmi_sample2.o -c ipmi_sample.c +ifru2.o:	ifru.c  	$(CC) $(CFLAGS_SAM) -o ifru2.o    -c ifru.c + +isel2.o:	isel.c  	$(CC) $(CFLAGS_SAM) -o isel2.o    -c isel.c -	$(CC) -g -O2 -o ipmi_sample2 ipmi_sample2.o $(L2OBJ) ifru2.o ifru_picmg2.o isel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) -ipmi_sample_evt:	$(DEV_LIB) ipmi_sample_evt.c $(L2OBJ) +ipmi_sample.o:	ipmi_sample.c +	$(CC) $(CFLAGS_SAM) -c ipmi_sample.c + +ipmi_sample2.o:	ipmi_sample.c +	$(CC) $(CFLAGS_SAM) -D GET_SENSORS -D GET_FRU -o ipmi_sample2.o -c ipmi_sample.c + +ipmi_sample_evt.o:	ipmi_sample_evt.c  	$(CC) $(CFLAGS_SAM) -o ipmi_sample_evt.o -c ipmi_sample_evt.c + +ipmi_sample$(EXEEXT):	$(DEV_LIB) ipmi_sample.o isensor.o ievents.o +	$(CC) -g -O2 -o ipmi_sample ipmi_sample.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +# To build ipmi_sample with GET_SENSORS enabled, need isensors.o, ievents.o  +# Note that this does not include oem_intel, etc. for OEM SEL decoding. +ipmi_sample2$(EXEEXT):	$(DEV_LIB) ipmi_sample2.o ifru2.o isel2.o ifru_picmg2.o $(L2OBJ) +	$(CC) -g -O2 -o ipmi_sample2 ipmi_sample2.o $(L2OBJ) ifru2.o ifru_picmg2.o isel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +ipmi_sample_evt$(EXEEXT):	$(DEV_LIB) ipmi_sample_evt.o $(L2OBJ)  	$(CC) -g -O2 -o ipmi_sample_evt ipmi_sample_evt.o $(L2OBJ) $(DEV_LIB) $(LDFLAGS) $(LDSAM) -ifruset:	$(DEV_LIB) ifruset.c ifru_picmg2.o +ialarms2.o:	ialarms.c +	$(CC) $(CFLAGS_SAM) -DTEST_ENC -o ialarms2.o -c ialarms.c + +oem_intel2.o:	oem_intel.c +	$(CC) $(CFLAGS_SAM) -DNO_EVENTS -o oem_intel2.o -c oem_intel.c + +ialarms_enc$(EXEEXT):	$(DEV_LIB) ialarms2.o oem_intel2.o +	$(CC) -g -O2 -o ialarms_enc ialarms2.o oem_intel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +ifruset.o:	ifruset.c  	$(CC) $(CFLAGS_SAM) -c ifruset.c + +ifruset$(EXEEXT):	$(DEV_LIB) ifruset.o ifru_picmg2.o  	$(CC)  -g -O2 -o ifruset ifruset.o ifru_picmg2.o $(DEV_LIB) $(LDFLAGS) $(LDADD) -iseltime:	$(DEV_LIB) iseltime.c  +iseltime.o:	iseltime.c  	$(CC) $(CFLAGS_SAM) -c iseltime.c + +iseltime$(EXEEXT):	$(DEV_LIB) iseltime.o   	$(CC)  -g -O2 -o iseltime iseltime.o $(DEV_LIB) $(LDFLAGS) $(LDADD) +iconfig$(EXEEXT):      iconfig.c $(DEV_LIB) +	$(CC) $(CFLAGS_SAM) $(LDFLAGS) -o iconfig iconfig.c $(DEV_LIB) @LANPLUS_CRYPTO@ +  ipmi_port$(EXEEXT):      ipmi_port.c  	$(CC) $(CFLAGS_SAM) $(LDFLAGS) -o ipmi_port ipmi_port.c  -iconfig:      iconfig.c $(DEV_LIB) -	$(CC) $(CFLAGS_SAM) $(LDFLAGS) -o iconfig iconfig.c $(DEV_LIB) @LANPLUS_CRYPTO@ -  # @LANPLUS_LIB@ is ../lib/libipmi_lanplus.a  ../lib/libipmi_lanplus.a:  	cd ../lib;  make diff --git a/util/Makefile.in b/util/Makefile.in index 08c6ba2..28cff49 100644 --- a/util/Makefile.in +++ b/util/Makefile.in @@ -253,10 +253,11 @@ target_alias = @target_alias@  top_build_prefix = @top_build_prefix@  top_builddir = @top_builddir@  top_srcdir = @top_srcdir@ -INCLUDES = -I..  OS_CF = @OS_CFLAGS@ @CROSS_CFLAGS@  OS_LF = @OS_LFLAGS@ @CROSS_LFLAGS@ +# To build ipmiutil, need to use METACFLAGS for each .c/.o +  # The LanDesk library is proprietary, so it is incompatible with ALLOW_GPL.  # To build with LanDesk support:  # First copy the library to ../lib/libipmiapi.a @@ -274,11 +275,12 @@ OS_LF = @OS_LFLAGS@ @CROSS_LFLAGS@  #  LDADD +=  -L../lib -lipmi_lanplus -L/usr/local/lib -lcrypto   #  LDADD +=  -L../lib -lintf_lanplus -L/usr/local/lib -lcrypto (older)  # Could also use CMDMOD += ipmilan2.c  instead, if completed. -AM_CPPFLAGS = $(OS_CF) -DLOCALEDIR=\"$(localedir)\" @IA64_CFLAGS@ \ +AM_CPPFLAGS = $(OS_CF) -DLOCALEDIR=\"$(localedir)\" -I.. @IA64_CFLAGS@ \  	@GPL_CFLAGS@ -I. -I.. -DMETACOMMAND @LANDESK_CFLAGS@ \  	@LANPLUS_CFLAGS@ $(am__empty)  LDADD = $(OS_LF) -lpthread @LANDESK_LDADD@ @LANPLUS_LIB@ \  	@LANPLUS_CRYPTO@ $(am__empty) +# usu LD_SAMX = ../lib/libipmi_lanplus.a -lcrypto  LDSAM = $(OS_LF) @LD_SAMX@  CFLAGS_SAMX = -O2 -g -I. -I.. $(OS_CF) @LANPLUS_CFLAGS@  CFLAGS_SAM = -O2 -g -I. -I.. $(OS_CF)  @@ -294,8 +296,11 @@ CMDMOD = ipmicmd.c mem_if.c ipmidir.c imbapi.c ipmimv.c ipmild.c \  	ipmilanplus.c  # CMDMOD = ipmicmd.c mem_if.c @OS_DRIVERS@  # am: configure substitutions are not allowed in _SOURCES variables -LIBOBJ = ipmicmd.o mem_if.o ipmidir.o imbapi.o ipmimv.o ipmild.o ipmibmc.o ipmilipmi.o subs.o md5.o md2.o $(tmpobj)/ipmilan.o $(tmpobj)/ipmilanplus.o @LIBSENSORS@ +TMPOBJL = $(tmpobj)/ipmilanL.o $(tmpobj)/ipmilanplusL.o +TMPOBJA = $(tmpobj)/ipmilanA.o $(tmpobj)/ipmilanplusA.o +LIBOBJ = ipmicmd.o mem_if.o ipmidir.o imbapi.o ipmimv.o ipmild.o ipmibmc.o ipmilipmi.o subs.o md5.o md2.o @LIBSENSORS@  OEMMOD = oem_kontron.c oem_fujitsu.c oem_intel.c oem_sun.c oem_supermicro.c oem_dell.c oem_quanta.c oem_hp.c oem_newisys.c oem_lenovo.c oem_asus.c iekanalyzer.c +# usu SAM2OBJ = isensor2.o ievents2.o  L2OBJ = @SAM2OBJ@  METASOURCE = ipmiutil.c ialarms.c ihealth.c ievents.c ifru.c ifru_picmg.c igetevent.c ireset.c icmd.c ilan.c isensor.c isel.c iserial.c iwdt.c isol.c idiscover.c iconfig.c ipicmg.c ifirewall.c ifwum.c ihpm.c itsol.c idcmi.c iuser.c $(OEMMOD) $(CMDMOD)   LANPLUS_OBJ = $(shell ar t @LANPLUS_LIB@ 2>/dev/null)  @@ -728,60 +733,55 @@ libimbapi.a:	imbapi.c  	$(RANLIB) libimbapi.a  	rm -f $(tmpobj)/imbapi.o +$(tmpobj)/ipmilanplusL.o:	ipmilanplus.c +	mkdir -p $(tmpobj) +	$(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplusL.o -c ipmilanplus.c;  + +$(tmpobj)/ipmilanL.o: 	ipmilan.c +	mkdir -p $(tmpobj) +	$(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanL.o -c ipmilan.c;  + +$(tmpobj)/ipmilanplusA.o:	ipmilanplus.c +	mkdir -p $(tmpobj) +	$(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplusA.o -c ipmilanplus.c;  + +$(tmpobj)/ipmilanA.o: 	ipmilan.c +	mkdir -p $(tmpobj) +	$(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanA.o -c ipmilan.c;  +  # Build a lib to support all of the IPMI drivers (libipmiutil.a)  # If LANPLUS_SAM = yes, include LANPLUS_OBJ, else do not.  # See configure --enable-liblanplus to change this -$(DEV_LIB):	$(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ -	mkdir -p $(tmpobj) +$(DEV_LIB):	$(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ $(TMPOBJL) $(TMPOBJA)   	if [ "x@LANPLUS_SAM@" = "xyes" ]; then \ -	   $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ -	   $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \  	   ar x @LANPLUS_LIB@ ; \ -	   $(AR) cru $(DEV_LIB) $(LIBOBJ) $(LANPLUS_OBJ); \ +	   $(AR) cru $(DEV_LIB) $(LIBOBJ) $(TMPOBJL) $(LANPLUS_OBJ); \  	   $(RANLIB) $(DEV_LIB); \  	else   \ -	   $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ -	   $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ -	   $(AR) cru $(DEV_LIB) $(LIBOBJ) ; \ +	   $(AR) cru $(DEV_LIB) $(LIBOBJ) $(TMPOBJA) ; \  	   $(RANLIB) $(DEV_LIB) ; \  	fi  -$(SHR_LIB):	$(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ -	mkdir -p $(tmpobj) +$(SHR_LIB):	$(CMDMOD:.c=.o) @LANPLUS_LIB@ @LIBSENSORS@ $(TMPOBJL) $(TMPOBJA)   	if [ "x@LANPLUS_SAM@" = "xyes" ]; then \ -	   $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ -	   $(CC) $(CFLAGS_SAMX) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \  	   ar x @LANPLUS_LIB@ ; \ -	   $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(LANPLUS_OBJ); \ +	   $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(TMPOBJL) $(LANPLUS_OBJ); \  	else \ -	   $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilanplus.o -c ipmilanplus.c; \ -	   $(CC) $(CFLAGS_SAM) -o $(tmpobj)/ipmilan.o -c ipmilan.c; \ -	   $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) ; \ +	   $(CC) $(LDFLAGS) -shared $(LDNAME) -o $(SHR_LIB) $(LIBOBJ) $(TMPOBJA) ; \  	fi   $(SHR_BLIB):	$(SHR_LIB)  	ln -s $(SHR_LIB) $(SHR_BLIB) -# To build ipmiutil, need to use METACFLAGS for each .c/.o -  idiscover$(EXEEXT):	idiscover.c  	$(CC) $(CFLAGS_SAM) $(LDFLAGS) $(OS_LF) -o idiscover idiscover.c -ipmimv: 	ipmimv.c +ipmimv$(EXEEXT): 	ipmimv.c  	$(CC) $(CFLAGS_SAM) $(LDFLAGS) -DTEST_BIN -o ipmimv ipmimv.c  ievents$(EXEEXT):         ievents.c  	$(CC) $(CFLAGS_SAM) $(LDFLAGS) -DALONE -o ievents ievents.c  -ipmi_sample:	$(DEV_LIB) ipmi_sample.c isensor.c ievents.c -	$(CC) $(CFLAGS_SAM) -c ipmi_sample.c -	$(CC) -g -O2 -o ipmi_sample ipmi_sample.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) - -ialarms_enc:	$(DEV_LIB) ialarms.c oem_intel.c -	$(CC) $(CFLAGS_SAM) -DTEST_ENC -o ialarms2.o -c ialarms.c -	$(CC) $(CFLAGS_SAM) -DNO_EVENTS -o oem_intel2.o -c oem_intel.c -	$(CC) -g -O2 -o ialarms_enc ialarms2.o oem_intel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) -  isensor2.o:	isensor.c  	$(CC) $(CFLAGS_SAM) -o isensor2.o -c isensor.c  @@ -791,32 +791,59 @@ ievents2.o:	ievents.c  ifru_picmg2.o:	ifru_picmg.c  	$(CC) $(CFLAGS_SAM) -o ifru_picmg2.o -c ifru_picmg.c -# To build ipmi_sample with GET_SENSORS enabled, need isensors.o, ievents.o  -# Note that this does not include oem_intel, etc. for OEM SEL decoding. -ipmi_sample2:	$(DEV_LIB) ipmi_sample.c ifru.c isel.c ifru_picmg2.o $(L2OBJ) -	$(CC) $(CFLAGS_SAM) -D GET_SENSORS -D GET_FRU -o ipmi_sample2.o -c ipmi_sample.c +ifru2.o:	ifru.c  	$(CC) $(CFLAGS_SAM) -o ifru2.o    -c ifru.c + +isel2.o:	isel.c  	$(CC) $(CFLAGS_SAM) -o isel2.o    -c isel.c -	$(CC) -g -O2 -o ipmi_sample2 ipmi_sample2.o $(L2OBJ) ifru2.o ifru_picmg2.o isel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) -ipmi_sample_evt:	$(DEV_LIB) ipmi_sample_evt.c $(L2OBJ) +ipmi_sample.o:	ipmi_sample.c +	$(CC) $(CFLAGS_SAM) -c ipmi_sample.c + +ipmi_sample2.o:	ipmi_sample.c +	$(CC) $(CFLAGS_SAM) -D GET_SENSORS -D GET_FRU -o ipmi_sample2.o -c ipmi_sample.c + +ipmi_sample_evt.o:	ipmi_sample_evt.c  	$(CC) $(CFLAGS_SAM) -o ipmi_sample_evt.o -c ipmi_sample_evt.c + +ipmi_sample$(EXEEXT):	$(DEV_LIB) ipmi_sample.o isensor.o ievents.o +	$(CC) -g -O2 -o ipmi_sample ipmi_sample.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +# To build ipmi_sample with GET_SENSORS enabled, need isensors.o, ievents.o  +# Note that this does not include oem_intel, etc. for OEM SEL decoding. +ipmi_sample2$(EXEEXT):	$(DEV_LIB) ipmi_sample2.o ifru2.o isel2.o ifru_picmg2.o $(L2OBJ) +	$(CC) -g -O2 -o ipmi_sample2 ipmi_sample2.o $(L2OBJ) ifru2.o ifru_picmg2.o isel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +ipmi_sample_evt$(EXEEXT):	$(DEV_LIB) ipmi_sample_evt.o $(L2OBJ)  	$(CC) -g -O2 -o ipmi_sample_evt ipmi_sample_evt.o $(L2OBJ) $(DEV_LIB) $(LDFLAGS) $(LDSAM) -ifruset:	$(DEV_LIB) ifruset.c ifru_picmg2.o +ialarms2.o:	ialarms.c +	$(CC) $(CFLAGS_SAM) -DTEST_ENC -o ialarms2.o -c ialarms.c + +oem_intel2.o:	oem_intel.c +	$(CC) $(CFLAGS_SAM) -DNO_EVENTS -o oem_intel2.o -c oem_intel.c + +ialarms_enc$(EXEEXT):	$(DEV_LIB) ialarms2.o oem_intel2.o +	$(CC) -g -O2 -o ialarms_enc ialarms2.o oem_intel2.o $(DEV_LIB) $(LDFLAGS) $(LDSAM) + +ifruset.o:	ifruset.c  	$(CC) $(CFLAGS_SAM) -c ifruset.c + +ifruset$(EXEEXT):	$(DEV_LIB) ifruset.o ifru_picmg2.o  	$(CC)  -g -O2 -o ifruset ifruset.o ifru_picmg2.o $(DEV_LIB) $(LDFLAGS) $(LDADD) -iseltime:	$(DEV_LIB) iseltime.c  +iseltime.o:	iseltime.c  	$(CC) $(CFLAGS_SAM) -c iseltime.c + +iseltime$(EXEEXT):	$(DEV_LIB) iseltime.o   	$(CC)  -g -O2 -o iseltime iseltime.o $(DEV_LIB) $(LDFLAGS) $(LDADD) +iconfig$(EXEEXT):      iconfig.c $(DEV_LIB) +	$(CC) $(CFLAGS_SAM) $(LDFLAGS) -o iconfig iconfig.c $(DEV_LIB) @LANPLUS_CRYPTO@ +  ipmi_port$(EXEEXT):      ipmi_port.c  	$(CC) $(CFLAGS_SAM) $(LDFLAGS) -o ipmi_port ipmi_port.c  -iconfig:      iconfig.c $(DEV_LIB) -	$(CC) $(CFLAGS_SAM) $(LDFLAGS) -o iconfig iconfig.c $(DEV_LIB) @LANPLUS_CRYPTO@ -  # @LANPLUS_LIB@ is ../lib/libipmi_lanplus.a  ../lib/libipmi_lanplus.a:  	cd ../lib;  make diff --git a/util/ievents.c b/util/ievents.c index bb3a81f..3958138 100644 --- a/util/ievents.c +++ b/util/ievents.c @@ -80,7 +80,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  extern char *progver;  /*from ipmiutil.c*/  static char * progname  = "ipmiutil events";  #else -static char *progver   = "3.11"; +static char *progver   = "3.12";  static char *progname  = "ievents";  #endif  static char fsensdesc = 0;   /* 1= get extended sensor descriptions*/ diff --git a/util/ifru.c b/util/ifru.c index 86e47bf..9b51aad 100644 --- a/util/ifru.c +++ b/util/ifru.c @@ -847,30 +847,31 @@ show_fru(uchar sa, uchar frudev, uchar frutype, uchar *pfrubuf)     pfru0 = &pfrubuf[0];  /*pointer to fru start*/     pfru = &pfrubuf[0];     sz = 8;  /*minimum for common header*/ -   for (i = 1; i < 6; i++) 	/* walk thru offsets */ -	if (pfrubuf[i] != 0) sz = pfrubuf[i] * 8; +   for (i = 1; i < 6; i++) {	/* walk thru offsets */ +	 if (pfrubuf[i] != 0) sz = pfrubuf[i] * 8; +   }     if (sz > 8) {   		/* if have at least one section */ -	if (pfrubuf[5] != 0) j = 5 + pfrubuf[sz+2]; /*if multi-record area*/ -	else j = pfrubuf[sz+1] * 8;   /* else add length of last section */ -	sz += j; +	 if (pfrubuf[5] != 0) j = 5 + pfrubuf[sz+2]; /*if multi-record area*/ +	 else j = pfrubuf[sz+1] * 8;   /* else add length of last section */ +	 sz += j;     }     /* Now, sz = size used, sfru = total available size */     if (sz > sfru) {        if (fdebug) { -	uchar hsum; +        uchar hsum;          printf("FRU Header: ");          for (i = 0; i < 8; i++) printf("%02x ",pfrubuf[i]);          printf("\n");          hsum = calc_cksum(&pfrubuf[0],7); -	if (pfrubuf[7] != hsum) +        if (pfrubuf[7] != hsum)             printf("FRU Header checksum mismatch (%x != %x)\n",pfrubuf[7],hsum);        }        printf("FRU size used=%d > available=%d\n",sz,sfru);        if (fpicmg || fdoanyway) sz = sfru;  /*do it anyway*/        else {          printf("Please apply the correct FRU/SDR diskette\n"); -	return(ERR_OTHER); +        return(ERR_OTHER);        }     }     /* internal area offset, length */ @@ -890,10 +891,11 @@ show_fru(uchar sa, uchar frudev, uchar frutype, uchar *pfrubuf)     mlen = 0;     if (moff > 0) {        for (i = moff; i < sfru; ) { +         if (pfrubuf[i] == 0 && pfrubuf[i+2] == 0) break; /*type/len invalid*/           j = 5 + pfrubuf[i+2]; -	 mlen += j; +         mlen += j;           if (pfrubuf[i+1] & 0x80) break; -	 i += j; +         i += j;        }     } @@ -1057,8 +1059,9 @@ show_fru(uchar sa, uchar frudev, uchar frutype, uchar *pfrubuf)        j = moff;        for (i = 0; j < sz ; i++)        { +         if (pfru[0] == 0 && pfru[2] == 0) break; /*type/len invalid*/            n = pfru[2];  /* len of this record */ -	 show_fru_multi(devstr,i,pfru[0],&pfru[5],n); +         show_fru_multi(devstr,i,pfru[0],&pfru[5],n);           j += (5 + n);           if (pfru[1] & 0x80) j = sz;  /*0x80 = last in list, break*/           pfru += (5 + n); @@ -1770,7 +1773,7 @@ int i_fru(int argc, char **argv)                  parse_lan_options(c,optarg,fdebug);                  break;            default: -                printf("Usage: %s [-bceikmtvx -a asset_tag -s ser_num -NUPREFTVY]\n", +                printf("Usage: %s [-bceikmtvx -a asset_tag -s ser_num -NUPREFTVYZ]\n",  			 progname);  		printf("   -a tag   Sets the Product Asset Tag\n");  		printf("   -b       Only show Baseboard FRU data\n"); @@ -2030,7 +2033,11 @@ int i_fru(int argc, char **argv)     if (fdump && ret == 0) {        /* Dump FRU to a binary file */ +#ifdef WIN32 +      fp = fopen(binfile,"wb"); +#else        fp = fopen(binfile,"w"); +#endif        if (fp == NULL) {           ret = get_LastError();           printf("Cannot open file %s, error %d\n",binfile,ret); @@ -2048,9 +2055,13 @@ int i_fru(int argc, char **argv)     else if (frestore) {        uchar cksum;        /* Restore FRU from a binary file */ +#ifdef WIN32 +      fp = fopen(binfile,"rb"); +#else        fp = fopen(binfile,"r"); +#endif        if (fp == NULL) { -	 ret = get_LastError(); +         ret = get_LastError();           printf("Cannot open file %s, error %d\n",binfile,ret);        } else {  	 ret = 0; @@ -2077,10 +2088,10 @@ int i_fru(int argc, char **argv)              free_fru(frubuf);  	 }  	 if (ret == 0) {  /*successfully read data*/ -            printf("Writing FRU size %d from %s  ...\n",sfru,binfile); -	    ret = write_fru_data(g_fruid, 0, frubuf, sfru, fdebug); -            free_fru(frubuf); -            if (ret != 0) printf("write_fru error %d (0x%02x)\n",ret,ret); +        printf("Writing FRU size %d from %s  ...\n",sfru,binfile); +        ret = write_fru_data(g_fruid, 0, frubuf, sfru, fdebug); +        free_fru(frubuf); +        if (ret != 0) printf("write_fru error %d (0x%02x)\n",ret,ret);  	    else {  /* successful, show new data */                 ret = load_fru(sa,g_fruid,g_frutype,&pfru);  	       if (ret != 0) show_loadfru_error(sa,g_fruid,ret); diff --git a/util/ifruset.c b/util/ifruset.c index b2f8b66..2d7617b 100644 --- a/util/ifruset.c +++ b/util/ifruset.c @@ -109,7 +109,7 @@ extern void fmt_time(time_t etime, char *buf, int bufsz); /*see ievents.c*/  extern char * progver;  /*from ipmiutil.c*/  static char *progname  = "ipmiutil fruset";  #else -static char * progver   = "3.08"; +static char * progver   = "3.12";  static char *progname  = "ifruset";  #endif  static char fdebug = 0; @@ -711,10 +711,14 @@ show_fru(uchar sa, uchar frudev, uchar frutype)      */     pfru = &frubuf[0];     sz = 8;  /*minimum for common header*/ -   for (i = 1; i < 6; i++) 	/* walk thru offsets */ -	if (frubuf[i] != 0) sz = frubuf[i] * 8; -   if (sz > 8)   		/* if have at least one section */ -      sz += frubuf[sz+1] * 8;   /* add length of last section */ +   for (i = 1; i < 6; i++) {	/* walk thru offsets */ + 	 if (frubuf[i] != 0) sz = frubuf[i] * 8; +   } +   if (sz > 8) {   		/* if have at least one section */ +	 if (frubuf[5] != 0) j = 5 + frubuf[sz+2]; /*if multi-record area*/ +	 else j = frubuf[sz+1] * 8;   /* else add length of last section */ +	 sz += j; +   }     /* Now, sz = size used, sfru = total available size */     if (sz > sfru) {        if (fdebug) { @@ -752,10 +756,11 @@ show_fru(uchar sa, uchar frudev, uchar frutype)     mlen = 0;     if (moff > 0) {        for (i = moff; i < sfru; ) { -	 j = 5 + frubuf[i+2]; +         if (frubuf[i] == 0 && frubuf[i+2] == 0) break; /*type/len invalid*/ +         j = 5 + frubuf[i+2];           mlen += j;            if (frubuf[i+1] & 0x80) break; -	 i += j; +         i += j;        }     } @@ -897,8 +902,9 @@ show_fru(uchar sa, uchar frudev, uchar frutype)        j = moff;        for (i = 0; j < sz; i++)        { +         if (pfru[0] == 0 && pfru[2] == 0) break; /*type/len invalid*/            n = pfru[2];  /* len of this record */ -	 show_fru_multi(devstr,i,pfru[0],&pfru[5],n); +         show_fru_multi(devstr,i,pfru[0],&pfru[5],n);           j += (5 + n);           if (pfru[1] & 0x80) j = sz;  /*0x80 = end of list*/           pfru += (5 + n); @@ -1367,7 +1373,7 @@ main(int argc, char **argv)                  parse_lan_options(c,optarg,fdebug);                  break;            default: -                printf("Usage: %s [-bcimx -unpvsafo -NUPREFTVY]\n",progname); +                printf("Usage: %s [-bcimxy -unpvsafo -NUPREFTVY]\n",progname);  		printf("   -u manu  Sets Product Manufacturer (0)\n");  		printf("   -n name  Sets Product Name         (1)\n");  		printf("   -p part  Sets Product Part Number  (2)\n"); @@ -1382,8 +1388,9 @@ main(int argc, char **argv)  		printf("   -d       Dump FRU to a file\n");  		printf("   -r       Restore FRU from a file\n");  		printf("   -i 00    Get/Set a specific FRU ID\n"); -                printf("   -m002000 specific MC (bus 00,sa 20,lun 00)\n"); +        printf("   -m002000 specific MC (bus 00,sa 20,lun 00)\n");  		printf("   -x       Display extra debug messages\n"); +		printf("   -y       Ignore the check for FRU size overflow\n");  		print_lan_opt_usage(0);                  ret = ERR_USAGE;  		goto do_exit; @@ -1567,7 +1574,11 @@ main(int argc, char **argv)     if (fdump && ret == 0) {        /* Dump FRU to a binary file */ +#ifdef WIN32 +      fp = fopen(binfile,"wb"); +#else        fp = fopen(binfile,"w"); +#endif        if (fp == NULL) {           ret = get_LastError();           printf("Cannot open file %s, error %d\n",binfile,ret); @@ -1583,9 +1594,13 @@ main(int argc, char **argv)     } else if (frestore) {        uchar cksum;        /* Restore FRU from a binary file */ +#ifdef WIN32 +      fp = fopen(binfile,"rb"); +#else        fp = fopen(binfile,"r"); +#endif        if (fp == NULL) { -	 ret = get_LastError(); +         ret = get_LastError();           printf("Cannot open file %s, error %d\n",binfile,ret);        } else {  	 ret = 0; diff --git a/util/ipmicmd.c b/util/ipmicmd.c index b7c8a5f..f8ce1ba 100644 --- a/util/ipmicmd.c +++ b/util/ipmicmd.c @@ -90,6 +90,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  #endif  #include "ipmicmd.h"    /* has NCMDS, ipmi_cmd_t */ +#include "ipmilan2.h"  /*includes ipmilan.h also*/  ipmi_cmd_t ipmi_cmds[NCMDS] = { /*if add here, also change NCMDS in ipmicmd.h*/   {/*empty,temp*/ 0, BMC_SA, PUBLIC_BUS, NETFN_APP,   BMC_LUN, 0, 20},  @@ -164,7 +165,6 @@ int ipmi_cmdraw_efi( uchar cmd, uchar netfn, uchar lun, uchar sa,  	 	uchar *presp, int *sresp, uchar *pcc, char fdebugcmd);  #else -#include "ipmilan2.h"  /*includes ipmilan.h also*/  #ifdef WIN32  extern int ipmi_cmdraw_ia( uchar cmd, uchar netfn, uchar lun, uchar sa,   		uchar bus, uchar *pdata, int sdata,  @@ -1453,13 +1453,12 @@ char *get_nodename(void)     return(gnode);  } -extern int lasterr;  /*defined in ipmilan.c */ -extern void show_LastError(char *tag, int err); -  void show_outcome(char *prog, int ret)  { +   int err = 0;     if (prog == NULL) prog = ""; -   if (ret == -1 && lasterr != 0) show_LastError(prog,lasterr); +   err = get_LastError(); +   if (ret == -1 && err != 0) show_LastError(prog,err);     printf("%s%c %s\n",prog,bcomma,decode_rv(ret));  } diff --git a/util/ipmilan.h b/util/ipmilan.h index 9a47efe..b25a55e 100644 --- a/util/ipmilan.h +++ b/util/ipmilan.h @@ -65,6 +65,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  /* see ipmicmd.h for LAN_ERR definitions */ +int get_LastError( void ); +void show_LastError(char *tag, int err); +void ipmi_lan_set_timeout(int ipmito, int tries, int pingto);  int ipmi_open_lan(char *node, int port, char *user, char *pswd, int fdebugcmd);  int ipmi_close_lan(char *node);  int ipmi_flush_lan(char *node); diff --git a/util/ipmiutil.c b/util/ipmiutil.c index eea67d0..20ce7c3 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"; -char *progver   = "3.11"; +char *progver   = "3.12";  // static char fdebug = 0;  /*int ipmiutil(int argc, char **argv); */ diff --git a/util/isel.c b/util/isel.c index 63a1d42..22e417c 100644 --- a/util/isel.c +++ b/util/isel.c @@ -719,7 +719,7 @@ int i_sel(int argc, char **argv)                  parse_lan_options(c,optarg,fdebug);                  break;            default: -                printf("Usage: %s [-bcdefmnprsuvwx] [-l 5] [-NUPREFTVY]\n", +                printf("Usage: %s [-bcdefmnprsuvwx] [-l 5] [-NUPREFTVYZ]\n",                         progname);  		printf("   -b  interpret Binary file with raw SEL data\n");  		printf("   -c  Show canonical output with delimiters\n"); diff --git a/util/isensor.c b/util/isensor.c index f140cdc..8bb2935 100644 --- a/util/isensor.c +++ b/util/isensor.c @@ -145,7 +145,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  #define N_SGRP   16  #define THR_EMPTY  999 -extern int get_LastError( void );  /* ipmilan.c */ +/* prototypes */ +int get_LastError( void );  /* ipmilan.c */  extern int use_devsdrs(int picmg);  /* ipmicmd.c */  extern int get_MemDesc(int array, int dimm, char *desc, int *psz); /*mem_if.c*/  extern char *get_sensor_type_desc(uchar stype); /*ievents.c*/ @@ -3405,7 +3406,7 @@ int i_sensor(int argc, char **argv)  		parse_lan_options(c,optarg,fdebug);  		break;  	  default:   /*usage*/ -	     printf("Usage: %s [-abcdefghijlmnprstuvwxL -NUPREFTVY]\n",progname); +	     printf("Usage: %s [-abcdefghijlmnprstuvwxL -NUPREFTVYZ]\n",progname);  	     printf("where -x      shows eXtra debug messages\n");  	     printf("      -a snum reArms the sensor (snum) for events\n");  	     printf("      -b      show Bladed child MCs for PICMG (same as -e)\n"); | 
