summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog76
-rw-r--r--INSTALL370
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.in7
-rw-r--r--NEWS0
-rw-r--r--README2
-rw-r--r--aclocal.m410
-rwxr-xr-xbootstrap42
-rwxr-xr-xconfig.guess192
-rwxr-xr-xconfig.sub30
-rwxr-xr-xconfigure53
-rw-r--r--configure.ac14
-rw-r--r--doc/ipmitool.1126
-rw-r--r--include/ipmitool/Makefile.am2
-rw-r--r--include/ipmitool/Makefile.in2
-rw-r--r--include/ipmitool/hpm2.h2
-rw-r--r--include/ipmitool/ipmi.h15
-rw-r--r--include/ipmitool/ipmi_sel.h52
-rw-r--r--include/ipmitool/ipmi_sel_supermicro.h87
-rw-r--r--include/ipmitool/ipmi_sol.h2
-rw-r--r--ipmitool.spec2
-rw-r--r--lib/Makefile.am3
-rw-r--r--lib/Makefile.in47
-rw-r--r--lib/dimm_spd.c852
-rw-r--r--lib/helper.c5
-rw-r--r--lib/hpm2.c8
-rw-r--r--lib/ipmi_chassis.c8
-rwxr-xr-xlib/ipmi_dcmi.c17
-rw-r--r--lib/ipmi_delloem.c15
-rw-r--r--lib/ipmi_ekanalyzer.c6
-rw-r--r--lib/ipmi_event.c1
-rw-r--r--lib/ipmi_fru.c65
-rw-r--r--lib/ipmi_hpmfwupg.c31
-rwxr-xr-xlib/ipmi_ime.c2
-rw-r--r--lib/ipmi_isol.c1
-rw-r--r--lib/ipmi_main.c12
-rw-r--r--lib/ipmi_mc.c2
-rw-r--r--lib/ipmi_pef.c5
-rw-r--r--lib/ipmi_picmg.c54
-rw-r--r--lib/ipmi_sdr.c11
-rw-r--r--lib/ipmi_sdradd.c1
-rw-r--r--lib/ipmi_sel.c23
-rw-r--r--lib/ipmi_sol.c6
-rw-r--r--lib/ipmi_strings.c82
-rw-r--r--lib/ipmi_sunoem.c8
-rw-r--r--lib/ipmi_tsol.c2
-rw-r--r--lib/ipmi_user.c15
-rw-r--r--lib/log.c7
-rw-r--r--ltmain.sh4
-rw-r--r--src/Makefile.am2
-rw-r--r--src/Makefile.in2
-rw-r--r--src/ipmievd.c3
-rw-r--r--src/ipmishell.c3
-rw-r--r--src/plugins/Makefile.am2
-rw-r--r--src/plugins/Makefile.in2
-rw-r--r--src/plugins/bmc/Makefile.am2
-rw-r--r--src/plugins/bmc/Makefile.in2
-rw-r--r--src/plugins/dummy/Makefile.am4
-rw-r--r--src/plugins/dummy/Makefile.in4
-rw-r--r--src/plugins/dummy/dummy.c17
-rw-r--r--src/plugins/dummy/dummy.h28
-rw-r--r--src/plugins/free/Makefile.am2
-rw-r--r--src/plugins/free/Makefile.in2
-rw-r--r--src/plugins/imb/Makefile.am2
-rw-r--r--src/plugins/imb/Makefile.in2
-rw-r--r--src/plugins/imb/imb.c1
-rw-r--r--src/plugins/imb/imbapi.c41
-rw-r--r--src/plugins/imb/imbapi.h5
-rw-r--r--src/plugins/ipmi_intf.c3
-rw-r--r--src/plugins/lan/Makefile.am2
-rw-r--r--src/plugins/lan/Makefile.in2
-rw-r--r--src/plugins/lan/lan.c2
-rw-r--r--src/plugins/lanplus/Makefile.am2
-rw-r--r--src/plugins/lanplus/Makefile.in2
-rw-r--r--src/plugins/lanplus/lanplus.c54
-rw-r--r--src/plugins/lipmi/Makefile.am2
-rw-r--r--src/plugins/lipmi/Makefile.in2
-rw-r--r--src/plugins/open/Makefile.am2
-rw-r--r--src/plugins/open/Makefile.in2
-rw-r--r--src/plugins/open/open.c1
-rw-r--r--src/plugins/serial/Makefile.am2
-rw-r--r--src/plugins/serial/Makefile.in2
-rw-r--r--src/plugins/serial/serial_basic.c2
-rw-r--r--src/plugins/serial/serial_terminal.c2
-rw-r--r--src/plugins/usb/Makefile.am2
-rw-r--r--src/plugins/usb/Makefile.in2
86 files changed, 1903 insertions, 692 deletions
diff --git a/ChangeLog b/ChangeLog
index 20ebac8..767891c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,79 @@
+version 1.8.17 2016-05-01
+ * Add INSTALL and NEWS, mandated by autoconf
+ * Added missing ipmi_sel_supermicro.h to template Makefile.am
+ * Check rsp->data_len in ipmi_sel_get_info()
+ * Fix "redirecting incorrect #include <sys/poll.h> to <poll.h>"
+ warning with musl libc
+ * Fix automake compatibility warnings
+ * Fix implicit declaration of function
+ 'get_nic_selection_mode_12g' in lib/ipmi_delloem.c
+ * Fix implicit declaration of function 'ipmi_get_oem' in
+ src/plugins/imb/imb.c
+ * Fix implicit declaration of function 'ipmi_get_oem' in
+ src/plugins/lanplus/lanplus.c
+ * Fix implicit declaration of function 'ipmi_get_oem' in
+ src/plugins/open/open.c
+ * Fix implicit declarations of functions 'HpmfwupgPreUpgradeCheck'
+ and 'ipmi_intf_get_max_request_data_size' in lib/ipmi_hpmfwupg.c
+ * Fix implicit declarations of functions
+ 'ipmi_intf_set_max_request_data_size' and
+ 'ipmi_intf_set_max_response_data_size' in lib/hpm2.c
+ * Fix implicit function declaration of
+ ipmi_intf_get_max_response_data_size in lib/ipmi_sdr.c
+ * Fix several implicit declarations of functions in
+ lib/ipmi_main.c
+ * Fix several implicit function declarations in lib/ipmi_fru.c
+ * Fix warning: suggest parentheses around '+' inside '<<'
+ in lib/ipmi_main.c
+ * Fix warning: suggest parentheses around arithmetic in operand of
+ '|' in include/ipmitool/hpm2
+ * Get rid of old INCLUDES macro, use AM_CPPFLAGS instead.
+ * ID 440 - Fix 'unknown type name fd_set" error.
+ * ID 440 - remove obsolete headers from lib/ipmi_sunoem.c
+ * ID:322 - let 'ekanalyzer frushow' run without a working
+ IPMI target
+ * ID:355 - Add #include <strings.h> to lib/ipmi_sel.c
+ * ID:355 - Add macros and #include and reduce number of warnings
+ * ID:355 - Change CFLAG -std=c99 to -std=gnu99
+ * ID:355 - Move Super Micro stuff into dedicated header file
+ * ID:355 - Remove declared, but not used variables
+ * ID:404 - Edit FRU information update problem
+ * ID:405 - Use meaningful Generator ID for "ipmitool sel add"
+ * ID:407 - Avoid assert on mismatched session ID
+ * ID:409 - Fix IPv6 socket creation on Windows/Cygwin.
+ * ID:410 - Disable USB interface for Windows/Cygwin by default.
+ * ID:410 - Enable/disable USB interface by "auto"
+ * ID:411 - Fix HPM.2 revision check for R1.1 and subsequent
+ specification revisions.
+ * ID:412 - Check errors when setting a user password.
+ * ID:413 - Print new line chne character when setting user
+ privilege.
+ * ID:414 - ekanalyzer frushow fails to show 'Product Info'
+ correctly
+ * ID:417 - Fix some typos
+ * ID:418 - Fix Compiling under Mac OS X
+ * ID:419 - List dummy.h in Makefile.am, so it gets included in
+ a release tarball
+ * ID:421 - Fix memleak for sol output
+ * ID:423 - Don't assume internal use area is present in ekanalyzer
+ * ID:424 - Update dimm_spd.c with data from the latest JEDEC List
+ * ID:425 - Disable USB interface for OS X/darwin
+ * ID:426 - Fallback to run-time detection of PAGESIZE if
+ compile-time detection is not supported
+ * ID:426 - Include sys/socket.h instead of asm/socket.h
+ * ID:426 - Include wchar.h instead of defining wchar_t ourselves
+ * ID:427 - Cleanup comment in ipmi_sdr_get_header()
+ * ID:427 - The first two bytes of dumped raw SDR data is wrong.
+ * ID:428 - Update IANA numbers / Product Name for IBM and ADLINK
+ * ID:430 - Change Nokia Siemens Networks to Nokia Solutions
+ and Networks
+ * ID:431 - Fix correct interpretation of led states
+ * ID:437 - sel: Fix "sel time set <time>"
+ * Make bootstrap script part of dist packages
+ * Remove #if 0 code aka not-compiled-in
+ * Remove trailing white-spaces in lib/log.c
+ * git-ignore autoconf-generated files
+
version 1.8.16 2015-11-22
* Add _ipmi_get_channel_access() and _ipmi_get_channel_info()
* Add _ipmi_get_user_access() and _ipmi_set_user_access()
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..2099840
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,370 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
+Inc.
+
+ Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved. This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+ Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package. Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+ The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system.
+
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package, generally using the just-built uninstalled binaries.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the `make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior `make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 7. Often, you can also type `make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like `make install' and `make uninstall' work correctly.
+ This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'. This
+is known as a "VPATH" build.
+
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+ By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'. Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the `DESTDIR' variable. For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names. The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+ Some packages offer the ability to configure how verbose the
+execution of `make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved. Use GNU `make'
+instead.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS
+ KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf limitation. Until the limitation is lifted, you can use
+this workaround:
+
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
diff --git a/Makefile.am b/Makefile.am
index 94e267a..c809131 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -31,7 +31,7 @@
DOCDIR = $(datadir)/doc/$(PACKAGE)
DOCLIST = $(top_srcdir)/README $(top_srcdir)/COPYING $(top_srcdir)/AUTHORS $(top_srcdir)/ChangeLog
-EXTRA_DIST = $(DOCLIST)
+EXTRA_DIST = $(DOCLIST) bootstrap
AUTOMAKE_OPTIONS = dist-bzip2
diff --git a/Makefile.in b/Makefile.in
index ad62af7..8074d84 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -111,8 +111,9 @@ target_triplet = @target@
subdir = .
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/configure $(am__configure_deps) \
- $(srcdir)/config.h.in AUTHORS COPYING ChangeLog README compile \
- config.guess config.sub depcomp install-sh missing ltmain.sh
+ $(srcdir)/config.h.in AUTHORS COPYING ChangeLog INSTALL NEWS \
+ README compile config.guess config.sub depcomp install-sh \
+ missing ltmain.sh
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -372,7 +373,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
DOCDIR = $(datadir)/doc/$(PACKAGE)
DOCLIST = $(top_srcdir)/README $(top_srcdir)/COPYING $(top_srcdir)/AUTHORS $(top_srcdir)/ChangeLog
-EXTRA_DIST = $(DOCLIST)
+EXTRA_DIST = $(DOCLIST) bootstrap
AUTOMAKE_OPTIONS = dist-bzip2
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure configure-stamp \
config.guess config.sub depcomp install-sh ltmain.sh missing \
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/NEWS
diff --git a/README b/README
index cc5915c..7494f80 100644
--- a/README
+++ b/README
@@ -24,7 +24,7 @@ Background
==========
I originally wrote ipmitool while between projects and employeed at Sun
Microsystems. Sun had just embarked on a new line of general-purpose x86
-servers that inclued an OEM Intel board with an IPMIv1.5 BMC on board.
+servers that included an OEM Intel board with an IPMIv1.5 BMC on board.
It started with an idea that remote chassis power control would be a handy
feature for my systems in the lab and from there it grew into a multi-
purpose tool that lots of people found useful. I decided to release it
diff --git a/aclocal.m4 b/aclocal.m4
index 2ee7708..b58e5e4 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -8705,10 +8705,9 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
])
# AM_CONDITIONAL -*- Autoconf -*-
@@ -9175,7 +9174,8 @@ to "yes", and re-run configure.
END
AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
fi
-fi])
+fi
+])
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
diff --git a/bootstrap b/bootstrap
new file mode 100755
index 0000000..6347427
--- /dev/null
+++ b/bootstrap
@@ -0,0 +1,42 @@
+#!/bin/sh -x
+#
+# Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistribution of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistribution in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# Neither the name of Sun Microsystems, Inc. or the names of
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# This software is provided "AS IS," without a warranty of any kind.
+# ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+# INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+# PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
+# SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE
+# FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
+# OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
+# SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA,
+# OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
+# PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
+# LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
+# EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+aclocal
+libtoolize --automake --copy
+
+autoheader
+automake --foreign --add-missing --copy
+
+aclocal
+autoconf
+automake --foreign
+
diff --git a/config.guess b/config.guess
index b79252d..1f5c50c 100755
--- a/config.guess
+++ b/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2013 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2013-06-10'
+timestamp='2014-03-23'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -149,7 +149,7 @@ Linux|GNU|GNU/*)
LIBC=gnu
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
;;
esac
@@ -826,7 +826,7 @@ EOF
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
- i*:MSYS*:*)
+ *:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
@@ -969,10 +969,10 @@ EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
- or1k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ openrisc*:Linux:*:*)
+ echo or1k-unknown-linux-${LIBC}
exit ;;
- or32:Linux:*:*)
+ or32:Linux:*:* | or1k*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
@@ -1260,16 +1260,26 @@ EOF
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
@@ -1361,154 +1371,6 @@ EOF
exit ;;
esac
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
cat >&2 <<EOF
$0: unable to guess system type
diff --git a/config.sub b/config.sub
index 9633db7..bba4efb 100755
--- a/config.sub
+++ b/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2013 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2013-08-10'
+timestamp='2014-09-11'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -68,7 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -265,6 +265,7 @@ case $basic_machine in
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -282,8 +283,10 @@ case $basic_machine in
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
@@ -295,11 +298,11 @@ case $basic_machine in
| nds32 | nds32le | nds32be \
| nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
- | open8 \
- | or1k | or32 \
+ | open8 | or1k | or1knd | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
+ | riscv32 | riscv64 \
| rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
@@ -324,7 +327,7 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -381,6 +384,7 @@ case $basic_machine in
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
@@ -400,8 +404,10 @@ case $basic_machine in
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa32r6-* | mipsisa32r6el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64r6-* | mipsisa64r6el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipsr5900-* | mipsr5900el-* \
@@ -413,6 +419,7 @@ case $basic_machine in
| nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
+ | or1k*-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -822,6 +829,10 @@ case $basic_machine in
basic_machine=powerpc-unknown
os=-morphos
;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=-moxiebox
+ ;;
msdos)
basic_machine=i386-pc
os=-msdos
@@ -1367,14 +1378,14 @@ case $os in
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1592,9 +1603,6 @@ case $basic_machine in
mips*-*)
os=-elf
;;
- or1k-*)
- os=-elf
- ;;
or32-*)
os=-coff
;;
diff --git a/configure b/configure
index 182c96d..4c3e65d 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.
+# Generated by GNU Autoconf 2.69 for ipmitool 1.8.17.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -585,15 +585,14 @@ MFLAGS=
MAKEFLAGS=
# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-PACKAGE_URL=
+PACKAGE_NAME='ipmitool'
+PACKAGE_TARNAME='ipmitool'
+PACKAGE_VERSION='1.8.17'
+PACKAGE_STRING='ipmitool 1.8.17'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
ac_unique_file="src/ipmitool.c"
-ac_unique_file="src/ipmitool.c"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -860,7 +859,7 @@ sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
@@ -1360,7 +1359,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
+\`configure' configures ipmitool 1.8.17 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1408,7 +1407,7 @@ Fine tuning of the installation directories:
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/ipmitool]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
@@ -1430,7 +1429,9 @@ _ACEOF
fi
if test -n "$ac_init_help"; then
-
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of ipmitool 1.8.17:";;
+ esac
cat <<\_ACEOF
Optional Features:
@@ -1451,7 +1452,7 @@ Optional Features:
--enable-solaris-opt enable all options for Solaris [default=no]
--enable-internal-md5 enable internal MD5 library [default=no]
--enable-intf-lan enable IPMIv1.5 LAN interface [default=yes]
- --enable-intf-usb enable IPMI USB interface [default=yes]
+ --enable-intf-usb enable IPMI USB interface [default=auto]
--enable-intf-lanplus enable IPMIv2.0 RMCP+ LAN interface [default=auto]
--enable-intf-serial enable direct Serial Basic/Terminal mode interface
[default=yes]
@@ -1557,7 +1558,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-configure
+ipmitool configure 1.8.17
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1922,7 +1923,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by $as_me, which was
+It was created by ipmitool $as_me 1.8.17, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2270,6 +2271,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
if test -f "$ac_dir/install-sh"; then
@@ -2582,8 +2584,8 @@ test "$program_suffix" != NONE &&
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
@@ -2895,9 +2897,8 @@ fi
# Define the identity of the package.
-
- PACKAGE=ipmitool
- VERSION=1.8.16
+ PACKAGE='ipmitool'
+ VERSION='1.8.17'
cat >>confdefs.h <<_ACEOF
@@ -2989,8 +2990,8 @@ END
as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
fi
fi
-ac_config_headers="$ac_config_headers config.h"
+ac_config_headers="$ac_config_headers config.h"
@@ -5163,7 +5164,7 @@ fi
done
-CFLAGS="$CFLAGS -Wall -Wextra -std=c99 -pedantic -Wformat -Wformat-nonliteral"
+CFLAGS="$CFLAGS -Wall -Wextra -std=gnu99 -pedantic -Wformat -Wformat-nonliteral"
case `pwd` in
*\ * | *\ *)
@@ -12587,6 +12588,7 @@ solaris*)
xenable_intf_open=no
xenable_intf_lipmi=no
xenable_intf_bmc=no
+ xenable_intf_usb=no
;;
*darwin*|aix*)
# disable the linux and solaris-specific interfaces
@@ -12595,6 +12597,7 @@ solaris*)
xenable_intf_lipmi=no
xenable_intf_bmc=no
xenable_ipmishell=no
+ xenable_intf_usb=no
;;
*freebsd*)
xenable_intf_imb=no
@@ -12845,7 +12848,7 @@ fi
if test "${enable_intf_usb+set}" = set; then :
enableval=$enable_intf_usb; xenable_intf_usb=$enableval
else
- xenable_intf_usb=yes
+ xenable_intf_usb=$xenable_intf_usb
fi
if test "x$xenable_intf_usb" = "xstatic" || test "x$xenable_intf_usb" = "xplugin"; then
@@ -14466,7 +14469,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by $as_me, which was
+This file was extended by ipmitool $as_me 1.8.17, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14532,7 +14535,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-config.status
+ipmitool config.status 1.8.17
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index a1bcf38..16c8305 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,11 +1,11 @@
dnl
dnl autoconf for ipmitool
dnl
-AC_INIT([src/ipmitool.c])
+AC_INIT([ipmitool], [1.8.17])
+AC_CONFIG_SRCDIR([src/ipmitool.c])
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE([ipmitool], [1.8.16])
+AM_INIT_AUTOMAKE
AM_CONFIG_HEADER(config.h)
-AC_CONFIG_SRCDIR([src/ipmitool.c])
AC_PREREQ(2.50)
AC_SUBST(ac_configure_args)
@@ -32,7 +32,7 @@ AC_CHECK_FUNCS([alarm gethostbyname getaddrinfo getifaddrs socket select])
AC_CHECK_FUNCS([memmove memset strchr strdup strerror])
AC_CHECK_FUNCS([getpassphrase])
-CFLAGS="$CFLAGS -Wall -Wextra -std=c99 -pedantic -Wformat -Wformat-nonliteral"
+CFLAGS="$CFLAGS -Wall -Wextra -std=gnu99 -pedantic -Wformat -Wformat-nonliteral"
AM_PROG_LIBTOOL
LIBTOOL="$LIBTOOL --silent"
@@ -89,6 +89,7 @@ solaris*)
xenable_intf_open=no
xenable_intf_lipmi=no
xenable_intf_bmc=no
+ xenable_intf_usb=no
;;
*darwin*|aix*)
# disable the linux and solaris-specific interfaces
@@ -97,6 +98,7 @@ solaris*)
xenable_intf_lipmi=no
xenable_intf_bmc=no
xenable_ipmishell=no
+ xenable_intf_usb=no
;;
*freebsd*)
xenable_intf_imb=no
@@ -201,9 +203,9 @@ fi
dnl enable IPMI USB interface
AC_ARG_ENABLE([intf-usb],
[AC_HELP_STRING([--enable-intf-usb],
- [enable IPMI USB interface [default=yes]])],
+ [enable IPMI USB interface [default=auto]])],
[xenable_intf_usb=$enableval],
- [xenable_intf_usb=yes])
+ [xenable_intf_usb=$xenable_intf_usb])
if test "x$xenable_intf_usb" = "xstatic" || test "x$xenable_intf_usb" = "xplugin"; then
xenable_intf_usb=yes
fi
diff --git a/doc/ipmitool.1 b/doc/ipmitool.1
index 10ccb74..2e39fad 100644
--- a/doc/ipmitool.1
+++ b/doc/ipmitool.1
@@ -10,47 +10,47 @@ ipmitool [ <options> ] <command> [ <sub-commands and sub-options> ]
Any recognized option is accepted. Conditional options may be ignored or it's usage postponed until shell or exec processes relevant command.
.br
-<general-options> := [ -h | -V | -v | -I <interface> | -H <address> |
- -d <N> | -p <port> | -c | -U <username> |
- -L <privlvl> | -l <lun> | -m <local_address> |
- -N <sec> | -R <count> | <password-option> |
+<general\-options> := [ \-h | \-V | \-v | \-I <interface> | \-H <address> |
+ \-d <N> | \-p <port> | \-c | \-U <username> |
+ \-L <privlvl> | \-l <lun> | \-m <local_address> |
+ \-N <sec> | \-R <count> | <password\-option> |
<oem-option> | <bridge-options> ]
-<conditional-opts> := [ <lan-options> | <lanplus-options> |
- <command-options> ]
+<conditional\-opts> := [ <lan\-options> | <lanplus\-options> |
+ <command\-options> ]
.br
Bridging:
.br
-<bridge-options> := -t <target_address> [ -b <channel> |
- [ -T <address> | -B <channel> ] ]
+<bridge\-options> := \-t <target_address> [ \-b <channel> |
+ [ \-T <address> | \-B <channel> ] ]
.br
-Options used with -I lan:
+Options used with \-I lan:
.br
-<lan-options> := [ -A <authtype> ]
+<lan\-options> := [ \-A <authtype> ]
.br
-Options used with -I lanplus:
+Options used with \-I lanplus:
.br
-<lanplus-options> := [ -C <ciphersuite> | <key-option> ]
+<lanplus\-options> := [ \-C <ciphersuite> | <key\-option> ]
.br
Option groups setting same value:
.br
-<key-option> := [ -k <key> | -K | -y <hex_key> | -Y ]
+<key\-option> := [ \-k <key> | \-K | \-y <hex_key> | \-Y ]
.br
-<password-option> := [ -f <password_file> | -a | -P <password> | -E ]
+<password\-option> := [ \-f <password_file> | \-a | \-P <password> | \-E ]
.br
-<oem-option> := [ -o <oemtype> | -g | -s ]
+<oem\-option> := [ \-o <oemtype> | \-g | \-s ]
.br
Options used with specific command <command-options>:
.br
-<options-sdr> := [ -S <sdr_cache_file> ]
+<options\-sdr> := [ \-S <sdr_cache_file> ]
.br
-<options-sel> := [ -O <sel_oem> ]
+<options\-sel> := [ \-O <sel_oem> ]
.br
-<options-sol> := [ -e <sol_escape_char> ]
+<options\-sol> := [ \-e <sol_escape_char> ]
.SH "DESCRIPTION"
@@ -63,7 +63,7 @@ chassis power control.
IPMI management of a local system interface requires a compatible IPMI
kernel driver to be installed and configured. On Linux this driver is
called \fIOpenIPMI\fP and it is included in standard distributions.
-On Solaris this driver is called \fIBMC\fP and is inclued in Solaris 10.
+On Solaris this driver is called \fIBMC\fP and is included in Solaris 10.
Management of a remote station requires the IPMI\-over\-LAN interface to be
enabled and configured. Depending on the particular requirements of each
system it may be possible to enable the LAN interface using ipmitool over
@@ -120,7 +120,7 @@ option is absent, or if password_file is empty, the password
will default to NULL.
.TP
\fB\-g\fR
-Deprecated. Use: -o intelplus
+Deprecated. Use: \-o intelplus
.TP
\fB\-h\fR
Get basic usage help from the command line.
@@ -151,7 +151,7 @@ combined with \fI-t target address\fP.
.TP
\fB\-m\fR <\fIlocal_address\fP>
Set the local IPMB address. The local address defaults to 0x20
-or is auto discovered on PICMG platforms when -m is not specified.
+or is auto discovered on PICMG platforms when \-m is not specified.
There should be no need to change the local address for normal operation.
.TP
\fB\-N\fR <\fIsec\fP>
@@ -185,7 +185,7 @@ Command \fIraw\fP uses fixed value of one try (no retries).
Command \fIhpm\fP uses fixed value of 10 retries.
.TP
\fB\-s\fR
-Deprecated. Use: -o supermicro
+Deprecated. Use: \-o supermicro
.TP
\fB\-S\fR <\fIsdr_cache_file\fP>
Use local file for remote SDR cache. Using a local SDR cache
@@ -223,7 +223,7 @@ Display version information.
\fB\-y\fR <\fIhex key\fP>
Use supplied Kg key for IPMIv2.0 authentication. The key is expected in
hexadecimal format and can be used to specify keys with non-printable
-characters. E.g. '-k PASSWORD' and '-y 50415353574F5244' are
+characters. E.g. '\-k PASSWORD' and '\-y 50415353574F5244' are
equivalent.
The default is not to use any Kg key.
.TP
@@ -1052,7 +1052,7 @@ Display point to point physical connectivity between carriers and AMC modules.
\fIpower\fP <\fBxx=filename1\fR> <\fBxx=filename2\fR> \fB...\fr
.br
-Display power supply informations between carrier and AMC modules.
+Display power supply information between carrier and AMC modules.
.TP
\fIall\fP <\fBxx=filename\fR> <\fBxx=filename\fR> \fB...\fr
.br
@@ -1064,7 +1064,7 @@ modules.
.TP
\fIfrushow\fP <\fBxx=filename\fR>
.br
-Convert a binary FRU file into human readable text format. Use -v option to get
+Convert a binary FRU file into human readable text format. Use \-v option to get
more display information.
.RE
@@ -1082,56 +1082,56 @@ and an AMC module or between 2 AMC modules. Example:
AMC slot B1 port 0 ==> On-Carrier Device 0 port 16
Matching Result
- From On-Carrier Device ID 0
- -Channel ID 11 || Lane 0: enable
- -Link Type: AMC.2 Ethernet
- -Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
- -Link Group ID: 0 || Link Asym. Match: exact match
+ \-Channel ID 11 || Lane 0: enable
+ \-Link Type: AMC.2 Ethernet
+ \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
+ \-Link Group ID: 0 || Link Asym. Match: exact match
- To AMC slot B1
- -Channel ID 0 || Lane 0: enable
- -Link Type: AMC.2 Ethernet
- -Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
- -Link Group ID: 0 || Link Asym. Match: exact match
+ \-Channel ID 0 || Lane 0: enable
+ \-Link Type: AMC.2 Ethernet
+ \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
+ \-Link Group ID: 0 || Link Asym. Match: exact match
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
AMC slot B1 port 1 ==> On-Carrier Device 0 port 12
Matching Result
- From On-Carrier Device ID 0
- -Channel ID 6 || Lane 0: enable
- -Link Type: AMC.2 Ethernet
- -Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
- -Link Group ID: 0 || Link Asym. Match: exact match
+ \-Channel ID 6 || Lane 0: enable
+ \-Link Type: AMC.2 Ethernet
+ \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
+ \-Link Group ID: 0 || Link Asym. Match: exact match
- To AMC slot B1
- -Channel ID 1 || Lane 0: enable
- -Link Type: AMC.2 Ethernet
- -Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
- -Link Group ID: 0 || Link Asym. Match: exact match
+ \-Channel ID 1 || Lane 0: enable
+ \-Link Type: AMC.2 Ethernet
+ \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
+ \-Link Group ID: 0 || Link Asym. Match: exact match
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
On-Carrier Device vs AMC slot A2
AMC slot A2 port 0 ==> On-Carrier Device 0 port 3
Matching Result
- From On-Carrier Device ID 0
- -Channel ID 9 || Lane 0: enable
- -Link Type: AMC.2 Ethernet
- -Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
- -Link Group ID: 0 || Link Asym. Match: exact match
+ \-Channel ID 9 || Lane 0: enable
+ \-Link Type: AMC.2 Ethernet
+ \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
+ \-Link Group ID: 0 || Link Asym. Match: exact match
- To AMC slot A2
- -Channel ID 0 || Lane 0: enable
- -Link Type: AMC.2 Ethernet
- -Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
- -Link Group ID: 0 || Link Asym. Match: exact match
+ \-Channel ID 0 || Lane 0: enable
+ \-Link Type: AMC.2 Ethernet
+ \-Link Type extension: 1000BASE-BX (SerDES Gigabit) Ethernet link
+ \-Link Group ID: 0 || Link Asym. Match: exact match
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
AMC slot B1 vs AMC slot A2
AMC slot A2 port 2 ==> AMC slot B1 port 2
Matching Result
- From AMC slot B1
- -Channel ID 2 || Lane 0: enable
- -Link Type: AMC.3 Storage
- -Link Type extension: Serial Attached SCSI (SAS/SATA)
- -Link Group ID: 0 || Link Asym. Match: FC or SAS interface {exact match}
+ \-Channel ID 2 || Lane 0: enable
+ \-Link Type: AMC.3 Storage
+ \-Link Type extension: Serial Attached SCSI (SAS/SATA)
+ \-Link Group ID: 0 || Link Asym. Match: FC or SAS interface {exact match}
- To AMC slot A2
- -Channel ID 2 || Lane 0: enable
- -Link Type: AMC.3 Storage
- -Link Type extension: Serial Attached SCSI (SAS/SATA)
- -Link Group ID: 0 || Link Asym. Match: FC or SAS interface {exact match}
+ \-Channel ID 2 || Lane 0: enable
+ \-Link Type: AMC.3 Storage
+ \-Link Type extension: Serial Attached SCSI (SAS/SATA)
+ \-Link Group ID: 0 || Link Asym. Match: FC or SAS interface {exact match}
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
.TP
\fIunmatch\fP <\fBxx=filename\fR> <\fBxx=filename\fR> \fB...\fr
@@ -2516,7 +2516,7 @@ Remove a policy. If domain is not supplied a default of platform is used.
\fIpower\fP \fImin\fP <minimum> \fImax\fP <maximum> [\fIdomain\fP <platform|CPU|Memory>]
.br
-Configure Node Manager power minumum and maximum power draw limits.
+Configure Node Manager power minimum and maximum power draw limits.
The \fImin\fP and \fImax\fP values must be in the range of 0-65535.
If domain is not supplied a default of platform is used.
@@ -3269,7 +3269,7 @@ I2C Master Write\-Read IPMI command.
Execute the service processor command line interface commands.
Without any command string, an interactive session is started
-in the service processor command line environ ment. If a
+in the service processor command line environment. If a
command string is specified, the command string is executed
on the service processor and the connection is closed.
.TP
@@ -3515,7 +3515,7 @@ a 2.4\-based kernel in order for ipmitool to work:
Incoming and outgoing message handler for IPMI interfaces.
.TP
.B ipmi_kcs_drv
-An IPMI Keyboard Controler Style (KCS) interface driver for the message handler.
+An IPMI Keyboard Controller Style (KCS) interface driver for the message handler.
.TP
.B ipmi_devintf
Linux character device interface for the message handler.
@@ -3553,7 +3553,7 @@ ipmitool includes some sample initialization scripts that
can perform this task automatically at start\-up.
In order to have ipmitool use the OpenIPMI device interface
-you can specifiy it on the command line:
+you can specify it on the command line:
.PP
ipmitool \fB\-I\fR \fIopen\fP <\fIcommand\fP>
.SH "BMC INTERFACE"
@@ -3664,7 +3664,7 @@ encryption algorightms.
The ipmitool \fIfree\fP interface utilizes the FreeIPMI libfreeipmi
drivers.
.LP
-You can tell ipmitool to use the FreeIPMI interface with the -I option:
+You can tell ipmitool to use the FreeIPMI interface with the \-I option:
.PP
ipmitool \fB\-I\fR \fIfree\fP <\fIcommand\fP>
@@ -3674,7 +3674,7 @@ ipmitool \fB\-I\fR \fIfree\fP <\fIcommand\fP>
The ipmitool \fIimb\fP interface supports the Intel IMB (Intel
Inter-module Bus) Interface through the /dev/imb device.
.LP
-You can tell ipmitool to use the IMB interface with the -I option:
+You can tell ipmitool to use the IMB interface with the \-I option:
.PP
ipmitool \fB\-I\fR \fIimb\fP <\fIcommand\fP>
diff --git a/include/ipmitool/Makefile.am b/include/ipmitool/Makefile.am
index 5a9062c..160e354 100644
--- a/include/ipmitool/Makefile.am
+++ b/include/ipmitool/Makefile.am
@@ -38,5 +38,5 @@ noinst_HEADERS = log.h bswap.h hpm2.h helper.h ipmi.h ipmi_cc.h ipmi_intf.h \
ipmi_oem.h ipmi_sdradd.h ipmi_isol.h ipmi_sunoem.h ipmi_picmg.h \
ipmi_fwum.h ipmi_main.h ipmi_tsol.h ipmi_firewall.h \
ipmi_kontronoem.h ipmi_ekanalyzer.h ipmi_gendev.h ipmi_ime.h \
- ipmi_delloem.h ipmi_dcmi.h ipmi_vita.h
+ ipmi_delloem.h ipmi_dcmi.h ipmi_vita.h ipmi_sel_supermicro.h
diff --git a/include/ipmitool/Makefile.in b/include/ipmitool/Makefile.in
index cf46c1f..5c55d42 100644
--- a/include/ipmitool/Makefile.in
+++ b/include/ipmitool/Makefile.in
@@ -317,7 +317,7 @@ noinst_HEADERS = log.h bswap.h hpm2.h helper.h ipmi.h ipmi_cc.h ipmi_intf.h \
ipmi_oem.h ipmi_sdradd.h ipmi_isol.h ipmi_sunoem.h ipmi_picmg.h \
ipmi_fwum.h ipmi_main.h ipmi_tsol.h ipmi_firewall.h \
ipmi_kontronoem.h ipmi_ekanalyzer.h ipmi_gendev.h ipmi_ime.h \
- ipmi_delloem.h ipmi_dcmi.h ipmi_vita.h
+ ipmi_delloem.h ipmi_dcmi.h ipmi_vita.h ipmi_sel_supermicro.h
all: all-am
diff --git a/include/ipmitool/hpm2.h b/include/ipmitool/hpm2.h
index 9e2a3a6..09b6237 100644
--- a/include/ipmitool/hpm2.h
+++ b/include/ipmitool/hpm2.h
@@ -43,7 +43,7 @@
* MSN = present revision,
* LSN = oldest revision parameter is
* backward compatible with. */
-#define LAN_PARAM_REV(x, y) ((x) << 4 | (y) & 0xF)
+#define LAN_PARAM_REV(x, y) (((x) << 4) | ((y) & 0xF))
/* HPM.2 capabilities */
#define HPM2_CAPS_SOL_EXTENSION 0x01
diff --git a/include/ipmitool/ipmi.h b/include/ipmitool/ipmi.h
index beda0ad..e978bfc 100644
--- a/include/ipmitool/ipmi.h
+++ b/include/ipmitool/ipmi.h
@@ -251,8 +251,15 @@ struct ipmi_rs {
/* These values are IANA numbers */
+/************************************************************************
+* Add ID String for IANA Enterprise Number of IBM & ADLINK
+* https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers
+************************************************************************/
+
typedef enum IPMI_OEM {
IPMI_OEM_UNKNOWN = 0,
+ /* 2 for [IBM] */
+ IPMI_OEM_IBM_2 = 2,
IPMI_OEM_HP = 11,
IPMI_OEM_SUN = 42,
IPMI_OEM_NOKIA = 94,
@@ -268,6 +275,8 @@ typedef enum IPMI_OEM {
IPMI_OEM_LMC = 2168,
IPMI_OEM_RADISYS = 4337,
IPMI_OEM_BROADCOM = 4413,
+ /* 4769 for [IBM Corporation] */
+ IPMI_OEM_IBM_4769 = 4769,
IPMI_OEM_MAGNUM = 5593,
IPMI_OEM_TYAN = 6653,
IPMI_OEM_QUANTA = 7244,
@@ -283,8 +292,12 @@ typedef enum IPMI_OEM {
IPMI_OEM_RARITAN = 13742,
IPMI_OEM_KONTRON = 15000,
IPMI_OEM_PPS = 16394,
+ /* 20301 for [IBM eServer X] */
+ IPMI_OEM_IBM_20301 = 20301,
IPMI_OEM_AMI = 20974,
- IPMI_OEM_NOKIA_SIEMENS_NETWORKS = 28458,
+ /* 24339 for [ADLINK TECHNOLOGY INC.] */
+ IPMI_OEM_ADLINK_24339 = 24339,
+ IPMI_OEM_NOKIA_SOLUTIONS_AND_NETWORKS = 28458,
IPMI_OEM_SUPERMICRO_47488 = 47488
} IPMI_OEM;
diff --git a/include/ipmitool/ipmi_sel.h b/include/ipmitool/ipmi_sel.h
index 53a8c1f..9778784 100644
--- a/include/ipmitool/ipmi_sel.h
+++ b/include/ipmitool/ipmi_sel.h
@@ -194,7 +194,7 @@ static struct ipmi_event_sensor_types oem_kontron_event_types[] __attribute__((u
{ 0xC7 , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FWUM Status", "First Boot After Rollback(error)" },
{ 0xC7 , 0x02 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FWUM Status", "First Boot After Errors (watchdog)" },
{ 0xC7 , 0x03 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FWUM Status", "First Boot After Manual Rollback" },
- { 0xC7 , 0x08 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FWUM Status", "Firmware Watchdog Bite, reset occured" },
+ { 0xC7 , 0x08 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FWUM Status", "Firmware Watchdog Bite, reset occurred" },
{ 0xC8 , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Switch Mngt Software Status", "Not Loaded" },
{ 0xC8 , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Switch Mngt Software Status", "Initializing" },
@@ -689,56 +689,6 @@ static struct ipmi_event_sensor_types sensor_specific_types[] __attribute__((unu
{ 0x00, 0x00, 0x00, 0x00, NULL, NULL },
};
-static uint16_t supermicro_x9dal[] = {
- 0x0635, 0xFFFF
-};
-
-static uint16_t supermicro_x9db[] = {
- 0x0733, 0x0722, 0x0703, 0x0721, 0x0716, 0x0637, 0xFFFF
-};
-
-static uint16_t supermicro_x9sb[] = {
- 0x0651, 0xFFFF
-};
-
-static uint16_t supermicro_x9[] = {
- 0x0635, 0x0733, 0x0722, 0x0703, 0x0721, 0x0716, 0x0637, 0x0651, 0xFFFF
-};
-
-static uint16_t supermicro_b8[] = {
- 0x000A, 0x061c, 0x0620, 0x0101, 0x061f, 0x0612, 0x061e, 0xFFFF
-};
-
-static uint16_t supermicro_h8[] = {
- 0xa111, 0x0408, 0x0811, 0x1411, 0x0911, 0x1211, 0x1011, 0xcd11, 0x1111, 0xbe11, 0xce11, 0xbd11,
- 0xbc11, 0xa911, 0xaa11, 0xbd11, 0xcb11, 0xad11, 0xa811, 0xac11, 0xaf11, 0xa511, 0xa011, 0x1611,
- 0x2511, 0xbf11, 0x1511, 0x2211, 0x2411, 0x1911, 0xab11, 0xd011, 0xae11, 0xca11, 0x0409, 0xa211,
- 0xa311, 0x1311, 0xba11, 0xa711, 0xd111, 0x1711, 0xcf11, 0x2011, 0x1811, 0xFFFF
-};
-
-static uint16_t supermicro_p8[] = {
- 0x6480, 0x7380, 0x6280, 0x7480, 0x5980, 0xFFFF
-};
-
-static uint16_t supermicro_x8[] = {
- 0xa880, 0x0403, 0x0100, 0x0601, 0x0001, 0x0404, 0x0606, 0x0608, 0x0632, 0x0400, 0x0401, 0x0006,
- 0x040a, 0xf280, 0x060f, 0x0609, 0x0008, 0x0613, 0x061b, 0x0007, 0x0600, 0x060c, 0x060d, 0x0614,
- 0x060c, 0x0003, 0x040b, 0x0621, 0x0610, 0x0638, 0xf380, 0x060b, 0x040d, 0x0605, 0x062d, 0x060e,
- 0x061a, 0xf580, 0x062e, 0x0009, 0xFFFF
-};
-
-static uint16_t supermicro_X8[] = {
- 0x000A, 0x061c, 0x0620, 0x0101, 0x061f, 0x0612, 0x061e, 0xa111, 0x0408, 0x0811, 0x1411, 0x0911,
- 0x1211, 0x1011, 0xcd11, 0x1111, 0xbe11, 0xce11, 0xbd11, 0xbc11, 0xa911, 0xaa11, 0xbd11, 0xcb11,
- 0xad11, 0xa811, 0xac11, 0xaf11, 0xa511, 0xa011, 0x1611, 0x2511, 0xbf11, 0x1511, 0x2211, 0x2411,
- 0x1911, 0xab11, 0xd011, 0xae11, 0xca11, 0x0409, 0xa211, 0xa311, 0x1311, 0xba11, 0xa711, 0xd111,
- 0x1711, 0xcf11, 0x2011, 0x1811, 0x6480, 0x7380, 0x6280, 0x7480, 0x5980, 0xa880, 0x0403, 0x0100,
- 0x0601, 0x0001, 0x0404, 0x0606, 0x0608, 0x0632, 0x0400, 0x0401, 0x0006, 0x040a, 0xf280, 0x060f,
- 0x0609, 0x0008, 0x0613, 0x061b, 0x0007, 0x0600, 0x060c, 0x060d, 0x0614, 0x060c, 0x0003, 0x040b,
- 0x0621, 0x0610, 0x0638, 0xf380, 0x060b, 0x040d, 0x0605, 0x062d, 0x060e, 0x061a, 0xf580, 0x062e,
- 0x0009, 0xFFFF
-};
-
int ipmi_sel_main(struct ipmi_intf *, int, char **);
void ipmi_sel_print_std_entry(struct ipmi_intf * intf, struct sel_event_record * evt);
void ipmi_sel_print_std_entry_verbose(struct ipmi_intf * intf, struct sel_event_record * evt);
diff --git a/include/ipmitool/ipmi_sel_supermicro.h b/include/ipmitool/ipmi_sel_supermicro.h
new file mode 100644
index 0000000..a058a8c
--- /dev/null
+++ b/include/ipmitool/ipmi_sel_supermicro.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any kind.
+ * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
+ * SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE
+ * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
+ * OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
+ * SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA,
+ * OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
+ * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
+ * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
+ * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ */
+
+
+#ifndef IPMI_SEL_SUPERMICRO_H
+# define IPMI_SEL_SUPERMICRO_H
+
+static uint16_t supermicro_x9dal[] = {
+ 0x0635, 0xFFFF
+};
+
+static uint16_t supermicro_x9db[] = {
+ 0x0733, 0x0722, 0x0703, 0x0721, 0x0716, 0x0637, 0xFFFF
+};
+
+static uint16_t supermicro_x9sb[] = {
+ 0x0651, 0xFFFF
+};
+
+static uint16_t supermicro_x9[] = {
+ 0x0635, 0x0733, 0x0722, 0x0703, 0x0721, 0x0716, 0x0637, 0x0651, 0xFFFF
+};
+
+static uint16_t supermicro_b8[] = {
+ 0x000A, 0x061c, 0x0620, 0x0101, 0x061f, 0x0612, 0x061e, 0xFFFF
+};
+
+static uint16_t supermicro_h8[] = {
+ 0xa111, 0x0408, 0x0811, 0x1411, 0x0911, 0x1211, 0x1011, 0xcd11, 0x1111, 0xbe11, 0xce11, 0xbd11,
+ 0xbc11, 0xa911, 0xaa11, 0xbd11, 0xcb11, 0xad11, 0xa811, 0xac11, 0xaf11, 0xa511, 0xa011, 0x1611,
+ 0x2511, 0xbf11, 0x1511, 0x2211, 0x2411, 0x1911, 0xab11, 0xd011, 0xae11, 0xca11, 0x0409, 0xa211,
+ 0xa311, 0x1311, 0xba11, 0xa711, 0xd111, 0x1711, 0xcf11, 0x2011, 0x1811, 0xFFFF
+};
+
+static uint16_t supermicro_p8[] = {
+ 0x6480, 0x7380, 0x6280, 0x7480, 0x5980, 0xFFFF
+};
+
+static uint16_t supermicro_x8[] = {
+ 0xa880, 0x0403, 0x0100, 0x0601, 0x0001, 0x0404, 0x0606, 0x0608, 0x0632, 0x0400, 0x0401, 0x0006,
+ 0x040a, 0xf280, 0x060f, 0x0609, 0x0008, 0x0613, 0x061b, 0x0007, 0x0600, 0x060c, 0x060d, 0x0614,
+ 0x060c, 0x0003, 0x040b, 0x0621, 0x0610, 0x0638, 0xf380, 0x060b, 0x040d, 0x0605, 0x062d, 0x060e,
+ 0x061a, 0xf580, 0x062e, 0x0009, 0xFFFF
+};
+
+static uint16_t supermicro_X8[] = {
+ 0x000A, 0x061c, 0x0620, 0x0101, 0x061f, 0x0612, 0x061e, 0xa111, 0x0408, 0x0811, 0x1411, 0x0911,
+ 0x1211, 0x1011, 0xcd11, 0x1111, 0xbe11, 0xce11, 0xbd11, 0xbc11, 0xa911, 0xaa11, 0xbd11, 0xcb11,
+ 0xad11, 0xa811, 0xac11, 0xaf11, 0xa511, 0xa011, 0x1611, 0x2511, 0xbf11, 0x1511, 0x2211, 0x2411,
+ 0x1911, 0xab11, 0xd011, 0xae11, 0xca11, 0x0409, 0xa211, 0xa311, 0x1311, 0xba11, 0xa711, 0xd111,
+ 0x1711, 0xcf11, 0x2011, 0x1811, 0x6480, 0x7380, 0x6280, 0x7480, 0x5980, 0xa880, 0x0403, 0x0100,
+ 0x0601, 0x0001, 0x0404, 0x0606, 0x0608, 0x0632, 0x0400, 0x0401, 0x0006, 0x040a, 0xf280, 0x060f,
+ 0x0609, 0x0008, 0x0613, 0x061b, 0x0007, 0x0600, 0x060c, 0x060d, 0x0614, 0x060c, 0x0003, 0x040b,
+ 0x0621, 0x0610, 0x0638, 0xf380, 0x060b, 0x040d, 0x0605, 0x062d, 0x060e, 0x061a, 0xf580, 0x062e,
+ 0x0009, 0xFFFF
+};
+
+#endif /* IPMI_SEL_SUPERMICRO_H */
diff --git a/include/ipmitool/ipmi_sol.h b/include/ipmitool/ipmi_sol.h
index 6e6c0b2..6e2fd24 100644
--- a/include/ipmitool/ipmi_sol.h
+++ b/include/ipmitool/ipmi_sol.h
@@ -64,7 +64,7 @@ struct sol_config_parameters {
/*
- * The ACTIVATE PAYLOAD command reponse structure
+ * The ACTIVATE PAYLOAD command response structure
* From table 24-2 of the IPMI v2.0 spec
*/
#ifdef PRAGMA_PACK
diff --git a/ipmitool.spec b/ipmitool.spec
index 749e82d..fbdd549 100644
--- a/ipmitool.spec
+++ b/ipmitool.spec
@@ -1,6 +1,6 @@
Name: ipmitool
Summary: ipmitool - Utility for IPMI control
-Version: 1.8.16
+Version: 1.8.17
Release: 1%{?_distro:.%{_distro}}
License: BSD
Group: Utilities
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 2a316db..359cb30 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -28,7 +28,8 @@
# LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
# EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-INCLUDES = -I$(top_srcdir)/include
+AUTOMAKE_OPTIONS = subdir-objects
+AM_CPPFLAGS = -I$(top_srcdir)/include
MAINTAINERCLEANFILES = Makefile.in
noinst_LTLIBRARIES = libipmitool.la
diff --git a/lib/Makefile.in b/lib/Makefile.in
index 5c993cb..ccb468f 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -121,6 +121,7 @@ CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__dirstamp = $(am__leading_dot)dirstamp
am_libipmitool_la_OBJECTS = helper.lo ipmi_sdr.lo ipmi_sel.lo \
ipmi_sol.lo ipmi_pef.lo ipmi_lanp.lo ipmi_fru.lo \
ipmi_chassis.lo ipmi_mc.lo log.lo dimm_spd.lo ipmi_sensor.lo \
@@ -130,7 +131,7 @@ am_libipmitool_la_OBJECTS = helper.lo ipmi_sdr.lo ipmi_sel.lo \
ipmi_tsol.lo ipmi_firewall.lo ipmi_kontronoem.lo \
ipmi_hpmfwupg.lo ipmi_sdradd.lo ipmi_ekanalyzer.lo \
ipmi_gendev.lo ipmi_ime.lo ipmi_delloem.lo ipmi_dcmi.lo \
- hpm2.lo ipmi_vita.lo md5.lo
+ hpm2.lo ipmi_vita.lo ../src/plugins/lan/md5.lo
libipmitool_la_OBJECTS = $(am_libipmitool_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -349,7 +350,8 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-INCLUDES = -I$(top_srcdir)/include
+AUTOMAKE_OPTIONS = subdir-objects
+AM_CPPFLAGS = -I$(top_srcdir)/include
MAINTAINERCLEANFILES = Makefile.in
noinst_LTLIBRARIES = libipmitool.la
libipmitool_la_SOURCES = helper.c ipmi_sdr.c ipmi_sel.c ipmi_sol.c ipmi_pef.c \
@@ -410,16 +412,27 @@ clean-noinstLTLIBRARIES:
echo rm -f $${locs}; \
rm -f $${locs}; \
}
+../src/plugins/lan/$(am__dirstamp):
+ @$(MKDIR_P) ../src/plugins/lan
+ @: > ../src/plugins/lan/$(am__dirstamp)
+../src/plugins/lan/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) ../src/plugins/lan/$(DEPDIR)
+ @: > ../src/plugins/lan/$(DEPDIR)/$(am__dirstamp)
+../src/plugins/lan/md5.lo: ../src/plugins/lan/$(am__dirstamp) \
+ ../src/plugins/lan/$(DEPDIR)/$(am__dirstamp)
libipmitool.la: $(libipmitool_la_OBJECTS) $(libipmitool_la_DEPENDENCIES) $(EXTRA_libipmitool_la_DEPENDENCIES)
$(AM_V_CCLD)$(libipmitool_la_LINK) $(libipmitool_la_OBJECTS) $(libipmitool_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
+ -rm -f ../src/plugins/lan/*.$(OBJEXT)
+ -rm -f ../src/plugins/lan/*.lo
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@../src/plugins/lan/$(DEPDIR)/md5.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dimm_spd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helper.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hpm2.Plo@am__quote@
@@ -456,41 +469,37 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipmi_user.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipmi_vita.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-md5.lo: ../src/plugins/lan/md5.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT md5.lo -MD -MP -MF $(DEPDIR)/md5.Tpo -c -o md5.lo `test -f '../src/plugins/lan/md5.c' || echo '$(srcdir)/'`../src/plugins/lan/md5.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/md5.Tpo $(DEPDIR)/md5.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../src/plugins/lan/md5.c' object='md5.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o md5.lo `test -f '../src/plugins/lan/md5.c' || echo '$(srcdir)/'`../src/plugins/lan/md5.c
-
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
+ -rm -rf ../src/plugins/lan/.libs ../src/plugins/lan/_libs
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
@@ -604,6 +613,8 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f ../src/plugins/lan/$(DEPDIR)/$(am__dirstamp)
+ -rm -f ../src/plugins/lan/$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -615,7 +626,7 @@ clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../src/plugins/lan/$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -661,7 +672,7 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../src/plugins/lan/$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
diff --git a/lib/dimm_spd.c b/lib/dimm_spd.c
index 912b211..8b6927c 100644
--- a/lib/dimm_spd.c
+++ b/lib/dimm_spd.c
@@ -186,123 +186,123 @@ const struct valstr jedec_id1_vals[] = {
{ 0x07, "Hitachi" },
{ 0x08, "Inmos" },
{ 0x89, "Intel" },
- { 0x8a, "I.T.T." },
- { 0x0b, "Intersil" },
- { 0x8c, "Monolithic Memories" },
- { 0x0d, "Mostek" },
- { 0x0e, "Motorola" },
- { 0x8f, "National" },
+ { 0x8A, "I.T.T." },
+ { 0x0B, "Intersil" },
+ { 0x8C, "Monolithic Memories" },
+ { 0x0D, "Mostek" },
+ { 0x0E, "Freescale (Motorola)" },
+ { 0x8F, "National" },
{ 0x10, "NEC" },
{ 0x91, "RCA" },
{ 0x92, "Raytheon" },
{ 0x13, "Conexant (Rockwell)" },
{ 0x94, "Seeq" },
- { 0x15, "Philips Semi. (Signetics)" },
+ { 0x15, "NXP (Philips)" },
{ 0x16, "Synertek" },
{ 0x97, "Texas Instruments" },
{ 0x98, "Toshiba" },
{ 0x19, "Xicor" },
- { 0x1a, "Zilog" },
- { 0x9b, "Eurotechnique" },
- { 0x1c, "Mitsubishi" },
- { 0x9d, "Lucent (AT&T)" },
- { 0x9e, "Exel" },
- { 0x1f, "Atmel" },
- { 0x20, "SGS/Thomson" },
- { 0xa1, "Lattice Semi." },
- { 0xa2, "NCR" },
+ { 0x1A, "Zilog" },
+ { 0x9B, "Eurotechnique" },
+ { 0x1C, "Mitsubishi" },
+ { 0x9D, "Lucent (AT&T)" },
+ { 0x9E, "Exel" },
+ { 0x1F, "Atmel" },
+ { 0x20, "STMicroelectronics" },
+ { 0xA1, "Lattice Semi." },
+ { 0xA2, "NCR" },
{ 0x23, "Wafer Scale Integration" },
- { 0xa4, "IBM" },
+ { 0xA4, "IBM" },
{ 0x25, "Tristar" },
{ 0x26, "Visic" },
- { 0xa7, "Intl. CMOS Technology" },
- { 0xa8, "SSSI" },
- { 0x29, "Microchip Technology" },
- { 0x2a, "Ricoh Ltd." },
- { 0xab, "VLSI" },
- { 0x2c, "Micron Technology" },
- { 0xad, "Hyundai Electronics" },
- { 0xae, "OKI Semiconductor" },
- { 0x2f, "ACTEL" },
- { 0xb0, "Sharp" },
+ { 0xA7, "Intl. CMOS Technology" },
+ { 0xA8, "SSSI" },
+ { 0x29, "MicrochipTechnology" },
+ { 0x2A, "Ricoh Ltd." },
+ { 0xAB, "VLSI" },
+ { 0x2C, "Micron Technology" },
+ { 0xAD, "SK Hynix" },
+ { 0xAE, "OKI Semiconductor" },
+ { 0x2F, "ACTEL" },
+ { 0xB0, "Sharp" },
{ 0x31, "Catalyst" },
{ 0x32, "Panasonic" },
- { 0xb3, "IDT" },
+ { 0xB3, "IDT" },
{ 0x34, "Cypress" },
- { 0xb5, "DEC" },
- { 0xb6, "LSI Logic" },
- { 0x37, "Zarlink" },
+ { 0xB5, "DEC" },
+ { 0xB6, "LSI Logic" },
+ { 0x37, "Zarlink (Plessey)" },
{ 0x38, "UTMC" },
- { 0xb9, "Thinking Machine" },
- { 0xba, "Thomson CSF" },
- { 0x3b, "Integrated CMOS(Vertex)" },
- { 0xbc, "Honeywell" },
- { 0x3d, "Tektronix" },
- { 0x3e, "Sun Microsystems" },
- { 0xbf, "SST" },
- { 0x40, "MOSEL" },
- { 0xc1, "Infineon" },
- { 0xc2, "Macronix" },
+ { 0xB9, "Thinking Machine" },
+ { 0xBA, "Thomson CSF" },
+ { 0x3B, "Integrated CMOS (Vertex)" },
+ { 0xBC, "Honeywell" },
+ { 0x3D, "Tektronix" },
+ { 0x3E, "Oracle Corporation" },
+ { 0xBF, "Silicon Storage Technology" },
+ { 0x40, "ProMos/Mosel Vitelic" },
+ { 0xC1, "Infineon (Siemens)" },
+ { 0xC2, "Macronix" },
{ 0x43, "Xerox" },
- { 0xc4, "Plus Logic" },
- { 0x45, "SunDisk" },
+ { 0xC4, "Plus Logic" },
+ { 0x45, "SanDisk Corporation" },
{ 0x46, "Elan Circuit Tech." },
- { 0xc7, "European Silicon Str." },
- { 0xc8, "Apple Computer" },
- { 0xc9, "Xilinx" },
- { 0x4a, "Compaq" },
- { 0xcb, "Protocol Engines" },
- { 0x4c, "SCI" },
- { 0xcd, "Seiko Instruments" },
- { 0xce, "Samsung" },
- { 0x4f, "I3 Design System" },
- { 0xd0, "Klic" },
+ { 0xC7, "European Silicon Str." },
+ { 0xC8, "Apple Computer" },
+ { 0x49, "Xilinx" },
+ { 0x4A, "Compaq" },
+ { 0xCB, "Protocol Engines" },
+ { 0x4C, "SCI" },
+ { 0xCD, "Seiko Instruments" },
+ { 0xCE, "Samsung" },
+ { 0x4F, "I3 Design System" },
+ { 0xD0, "Klic" },
{ 0x51, "Crosspoint Solutions" },
{ 0x52, "Alliance Semiconductor" },
- { 0xd3, "Tandem" },
+ { 0xD3, "Tandem" },
{ 0x54, "Hewlett-Packard" },
- { 0xd5, "Intg. Silicon Solutions" },
- { 0xd6, "Brooktree" },
+ { 0xD5, "Integrated Silicon Solutions" },
+ { 0xD6, "Brooktree" },
{ 0x57, "New Media" },
{ 0x58, "MHS Electronic" },
- { 0xd9, "Performance Semi." },
- { 0xda, "Winbond Electronic" },
- { 0x5b, "Kawasaki Steel" },
- { 0xdc, "Bright Micro" },
- { 0x5d, "TECMAR" },
- { 0x5e, "Exar" },
- { 0xdf, "PCMCIA" },
- { 0xe0, "LG Semiconductor" },
+ { 0xD9, "Performance Semi." },
+ { 0xDA, "Winbond Electronic" },
+ { 0x5B, "Kawasaki Steel" },
+ { 0xDC, "Bright Micro" },
+ { 0x5D, "TECMAR" },
+ { 0x5E, "Exar" },
+ { 0xDF, "PCMCIA" },
+ { 0xE0, "LG Semi (Goldstar)" },
{ 0x61, "Northern Telecom" },
{ 0x62, "Sanyo" },
- { 0xe3, "Array Microsystems" },
+ { 0xE3, "Array Microsystems" },
{ 0x64, "Crystal Semiconductor" },
- { 0xe5, "Analog Devices" },
- { 0xe6, "PMC-Sierra" },
+ { 0xE5, "Analog Devices" },
+ { 0xE6, "PMC-Sierra" },
{ 0x67, "Asparix" },
{ 0x68, "Convex Computer" },
- { 0xe9, "Quality Semiconductor" },
- { 0xea, "Nimbus Technology" },
- { 0x6b, "Transwitch" },
- { 0xec, "Micronas (ITT Intermetall)" },
- { 0x6d, "Cannon" },
- { 0x6e, "Altera" },
- { 0xef, "NEXCOM" },
- { 0x70, "QUALCOMM" },
- { 0xf1, "Sony" },
- { 0xf2, "Cray Research" },
- { 0x73, "AMS (Austria Micro)" },
- { 0xf4, "Vitesse" },
+ { 0xE9, "Quality Semiconductor" },
+ { 0xEA, "Nimbus Technology" },
+ { 0x6B, "Transwitch" },
+ { 0xEC, "Micronas (ITT Intermetall)" },
+ { 0x6D, "Cannon" },
+ { 0x6E, "Altera" },
+ { 0xEF, "NEXCOM" },
+ { 0x70, "Qualcomm" },
+ { 0xF1, "Sony" },
+ { 0xF2, "Cray Research" },
+ { 0x73, "AMS(Austria Micro)" },
+ { 0xF4, "Vitesse" },
{ 0x75, "Aster Electronics" },
{ 0x76, "Bay Networks (Synoptic)" },
- { 0xf7, "Zentrum" },
- { 0xf8, "TRW" },
+ { 0xF7, "Zentrum/ZMD" },
+ { 0xF8, "TRW" },
{ 0x79, "Thesys" },
- { 0x7a, "Solbourne Computer" },
- { 0xfb, "Allied-Signal" },
- { 0x7c, "Dialog" },
- { 0xfd, "Media Vision" },
- { 0xfe, "Level One Communication" },
+ { 0x7A, "Solbourne Computer" },
+ { 0xFB, "Allied-Signal" },
+ { 0x7C, "Dialog Semiconductor" },
+ { 0xFD, "Media Vision" },
+ { 0xFE, "Numonyx Corporation" },
{ 0x00, NULL },
};
@@ -314,7 +314,7 @@ const struct valstr jedec_id2_vals[] = {
{ 0x85, "Micro Linear" },
{ 0x86, "Univ. of NC" },
{ 0x07, "JTAG Technologies" },
- { 0x08, "Loral" },
+ { 0x08, "BAE Systems (Loral)" },
{ 0x89, "Nchip" },
{ 0x8A, "Galileo Tech" },
{ 0x0B, "Bestlink Systems" },
@@ -324,7 +324,7 @@ const struct valstr jedec_id2_vals[] = {
{ 0x8F, "Robert Bosch" },
{ 0x10, "Chip Express" },
{ 0x91, "DATARAM" },
- { 0x92, "United Microelec Corp." },
+ { 0x92, "United Microelectronics Corp." },
{ 0x13, "TCSI" },
{ 0x94, "Smart Modular" },
{ 0x15, "Hughes Aircraft" },
@@ -335,7 +335,7 @@ const struct valstr jedec_id2_vals[] = {
{ 0x1A, "Ericsson Components" },
{ 0x9B, "SpaSE" },
{ 0x1C, "Eon Silicon Devices" },
- { 0x9D, "Programmable Micro Corp" },
+ { 0x9D, "Integrated Silicon Solution (ISSI)" },
{ 0x9E, "DoD" },
{ 0x1F, "Integ. Memories Tech." },
{ 0x20, "Corollary Inc." },
@@ -343,10 +343,10 @@ const struct valstr jedec_id2_vals[] = {
{ 0xA2, "Omnivision" },
{ 0x23, "EIV(Switzerland)" },
{ 0xA4, "Novatel Wireless" },
- { 0x25, "Zarlink (formerly Mitel)" },
+ { 0x25, "Zarlink (Mitel)" },
{ 0x26, "Clearpoint" },
{ 0xA7, "Cabletron" },
- { 0xA8, "Silicon Technology" },
+ { 0xA8, "STEC (Silicon Tech)" },
{ 0x29, "Vanguard" },
{ 0x2A, "Hagiwara Sys-Com" },
{ 0xAB, "Vantis" },
@@ -356,7 +356,7 @@ const struct valstr jedec_id2_vals[] = {
{ 0x2F, "Rohm Company Ltd." },
{ 0xB0, "Juniper Networks" },
{ 0x31, "Libit Signal Processing" },
- { 0x32, "Enhanced Memories Inc." },
+ { 0x32, "Mushkin Enhanced Memory" },
{ 0xB3, "Tundra Semiconductor" },
{ 0x34, "Adaptec Inc." },
{ 0xB5, "LightSpeed Semi." },
@@ -364,7 +364,7 @@ const struct valstr jedec_id2_vals[] = {
{ 0x37, "AMIC Technology" },
{ 0x38, "Adobe Systems" },
{ 0xB9, "Dynachip" },
- { 0xBA, "PNY Electronics" },
+ { 0xBA, "PNY Technologies, Inc." },
{ 0x3B, "Newport Digital" },
{ 0xBC, "MMC Networks" },
{ 0x3D, "T Square" },
@@ -372,12 +372,12 @@ const struct valstr jedec_id2_vals[] = {
{ 0xBF, "Broadcom" },
{ 0x40, "Viking Components" },
{ 0xC1, "V3 Semiconductor" },
- { 0xC2, "Flextronics (formerly Orbit)" },
+ { 0xC2, "Flextronics (Orbit Semiconductor)" },
{ 0x43, "Suwa Electronics" },
{ 0xC4, "Transmeta" },
{ 0x45, "Micron CMS" },
- { 0x46, "American Computer & Digital Components Inc" },
- { 0xC7, "Enhance 3000 Inc" },
+ { 0x46, "American Computer & Digital Components Inc." },
+ { 0xC7, "Enhance 3000 Inc." },
{ 0xC8, "Tower Semiconductor" },
{ 0x49, "CPU Design" },
{ 0x4A, "Price Point" },
@@ -407,7 +407,7 @@ const struct valstr jedec_id2_vals[] = {
{ 0x62, "Super PC Memory" },
{ 0xE3, "MGV Memory" },
{ 0x64, "Galvantech" },
- { 0xE5, "Gadzoox Nteworks" },
+ { 0xE5, "Gadzoox Networks" },
{ 0xE6, "Multi Dimensional Cons." },
{ 0x67, "GateField" },
{ 0x68, "Integrated Memory System" },
@@ -448,7 +448,7 @@ const struct valstr jedec_id3_vals[] = {
{ 0x89, "Switchcore" },
{ 0x8A, "Cisco Systems, Inc." },
{ 0x0B, "Allayer Technologies" },
- { 0x8C, "WorkX AG" },
+ { 0x8C, "WorkX AG (Wichman)" },
{ 0x0D, "Oasis Semiconductor" },
{ 0x0E, "Novanet Semiconductor" },
{ 0x8F, "E-M Solutions" },
@@ -469,7 +469,7 @@ const struct valstr jedec_id3_vals[] = {
{ 0x9E, "Corsair" },
{ 0x1F, "Actrans System Inc." },
{ 0x20, "ALPHA Technologies" },
- { 0xA1, "Cygnal Integrated Products Incorporated" },
+ { 0xA1, "Silicon Laboratories, Inc. (Cygnal)" },
{ 0xA2, "Artesyn Technologies" },
{ 0x23, "Align Manufacturing" },
{ 0xA4, "Peregrine Semiconductor" },
@@ -480,12 +480,12 @@ const struct valstr jedec_id3_vals[] = {
{ 0x29, "ADTEC Corporation" },
{ 0x2A, "Kentron Technologies" },
{ 0xAB, "Win Technologies" },
- { 0x2C, "ASIC Designs Inc" },
+ { 0x2C, "Tezzaron Semiconductor" },
{ 0xAD, "Extreme Packet Devices" },
{ 0xAE, "RF Micro Devices" },
{ 0x2F, "Siemens AG" },
{ 0xB0, "Sarnoff Corporation" },
- { 0x31, "Itautec Philco SA" },
+ { 0x31, "Itautec SA" },
{ 0x32, "Radiata Inc." },
{ 0xB3, "Benchmark Elect. (AVEX)" },
{ 0x34, "Legend" },
@@ -513,7 +513,7 @@ const struct valstr jedec_id3_vals[] = {
{ 0x4A, "W.L. Gore" },
{ 0xCB, "HanBit Electronics" },
{ 0x4C, "GlobeSpan" },
- { 0xCD, "Element 14" },
+ { 0xCD, "Element 14" },
{ 0xCE, "Pycon" },
{ 0x4F, "Saifun Semiconductors" },
{ 0xD0, "Sibyte, Incorporated" },
@@ -527,7 +527,7 @@ const struct valstr jedec_id3_vals[] = {
{ 0x58, "Malaysia Micro Solutions" },
{ 0xD9, "Hyperchip" },
{ 0xDA, "Gemstone Communications" },
- { 0x5B, "Anadyne Microelectronics" },
+ { 0x5B, "Anadigm (Anadyne)" },
{ 0xDC, "3ParData" },
{ 0x5D, "Mellanox Technologies" },
{ 0x5E, "Tenx Technologies" },
@@ -536,7 +536,7 @@ const struct valstr jedec_id3_vals[] = {
{ 0x61, "Skyup Technology" },
{ 0x62, "HiNT Corporation" },
{ 0xE3, "Chiaro" },
- { 0x64, "MCI Computer GMBH" },
+ { 0x64, "MDT Technologies GmbH" },
{ 0xE5, "Exbit Technology A/S" },
{ 0xE6, "Integrated Technology Express" },
{ 0x67, "AVED Memory" },
@@ -586,7 +586,7 @@ const struct valstr jedec_id4_vals[] = {
{ 0x91, "NeoMagic" },
{ 0x92, "AuroraNetics" },
{ 0x13, "Golden Empire" },
- { 0x94, "Muskin" },
+ { 0x94, "Mushkin" },
{ 0x15, "Tioga Technologies" },
{ 0x16, "Netlist" },
{ 0x97, "TeraLogic" },
@@ -628,7 +628,7 @@ const struct valstr jedec_id4_vals[] = {
{ 0x3B, "Concept Computer" },
{ 0xBC, "SILCOM" },
{ 0x3D, "3Dlabs" },
- { 0x3E, "ct Magazine" },
+ { 0x3E, "c’t Magazine" },
{ 0xBF, "Sanera Systems" },
{ 0x40, "Silicon Packets" },
{ 0xC1, "Viasystems Group" },
@@ -654,13 +654,13 @@ const struct valstr jedec_id4_vals[] = {
{ 0xD5, "Silverback Systems" },
{ 0xD6, "Jade Star Technologies" },
{ 0x57, "Pijnenburg Securealink" },
- { 0x58, "MemorySolutioN" },
+ { 0x58, "takeMS - Ultron AG" },
{ 0xD9, "Cambridge Silicon Radio" },
{ 0xDA, "Swissbit" },
{ 0x5B, "Nazomi Communications" },
{ 0xDC, "eWave System" },
{ 0x5D, "Rockwell Collins" },
- { 0x5E, "PAION" },
+ { 0x5E, "Picocel Co. Ltd. (Paion)" },
{ 0xDF, "Alphamosaic Ltd" },
{ 0xE0, "Sandburst" },
{ 0x61, "SiCon Video" },
@@ -669,16 +669,17 @@ const struct valstr jedec_id4_vals[] = {
{ 0x64, "PrairieComm" },
{ 0xE5, "Mitac International" },
{ 0xE6, "Layer N Networks" },
- { 0x67, "Atsana Semiconductor" },
+ { 0x67, "MtekVision (Atsana)" },
{ 0x68, "Allegro Networks" },
{ 0xE9, "Marvell Semiconductors" },
{ 0xEA, "Netergy Microelectronic" },
{ 0x6B, "NVIDIA" },
{ 0xEC, "Internet Machines" },
- { 0x6D, "Peak Electronics" },
+ { 0x6D, "Memorysolution GmbH" },
+ { 0x6E, "Litchfield Communication" },
{ 0xEF, "Accton Technology" },
{ 0x70, "Teradiant Networks" },
- { 0xF1, "Europe Technologies" },
+ { 0xF1, "Scaleo Chip" },
{ 0xF2, "Cortina Systems" },
{ 0x73, "RAM Components" },
{ 0xF4, "Raqia Networks" },
@@ -711,7 +712,7 @@ const struct valstr jedec_id5_vals[] = {
{ 0x0D, "Patriot Scientific" },
{ 0x0E, "Neoaxiom Corporation" },
{ 0x8F, "3Y Power Technology" },
- { 0x10, "Europe Technologies" },
+ { 0x10, "Scaleo Chip" },
{ 0x91, "Potentia Power Systems" },
{ 0x92, "C-guys Incorporated" },
{ 0x13, "Digital Communications Technology Incorporated" },
@@ -721,22 +722,22 @@ const struct valstr jedec_id5_vals[] = {
{ 0x97, "XIOtech Corporation" },
{ 0x98, "PortalPlayer" },
{ 0x19, "Zhiying Software" },
- { 0x1A, "Direct2Data" },
+ { 0x1A, "ParkerVision, Inc." },
{ 0x9B, "Phonex Broadband" },
{ 0x1C, "Skyworks Solutions" },
{ 0x9D, "Entropic Communications" },
- { 0x9E, "Pacific Force Technology" },
+ { 0x9E, "I’M Intelligent Memory Ltd." },
{ 0x1F, "Zensys A/S" },
{ 0x20, "Legend Silicon Corp." },
- { 0xA1, "sci-worx GmbH" },
- { 0xA2, "Oasis Silicon Systems" },
- { 0x23, "Renesas Technology" },
+ { 0xA1, "Sci-worx GmbH" },
+ { 0xA2, "SMSC (Standard Microsystems)" },
+ { 0x23, "Renesas Electronics" },
{ 0xA4, "Raza Microelectronics" },
{ 0x25, "Phyworks" },
{ 0x26, "MediaTek" },
{ 0xA7, "Non-cents Productions" },
{ 0xA8, "US Modular" },
- { 0x29, "Wintegra Ltd" },
+ { 0x29, "Wintegra Ltd." },
{ 0x2A, "Mathstar" },
{ 0xAB, "StarCore" },
{ 0x2C, "Oplus Technologies" },
@@ -772,6 +773,559 @@ const struct valstr jedec_id5_vals[] = {
{ 0x4A, "Excel Semiconductor" },
{ 0xCB, "A-DATA Technology" },
{ 0x4C, "VirtualDigm" },
+ { 0xCD, "G Skill Intl" },
+ { 0xCE, "Quanta Computer" },
+ { 0x4F, "Yield Microelectronics" },
+ { 0xD0, "Afa Technologies" },
+ { 0x51, "KINGBOX Technology Co. Ltd." },
+ { 0x52, "Ceva" },
+ { 0xD3, "iStor Networks" },
+ { 0x54, "Advance Modules" },
+ { 0xD5, "Microsoft" },
+ { 0xD6, "Open-Silicon" },
+ { 0x57, "Goal Semiconductor" },
+ { 0x58, "ARC International" },
+ { 0xD9, "Simmtec" },
+ { 0xDA, "Metanoia" },
+ { 0x5B, "Key Stream" },
+ { 0xDC, "Lowrance Electronics" },
+ { 0x5D, "Adimos" },
+ { 0x5E, "SiGe Semiconductor" },
+ { 0xDF, "Fodus Communications" },
+ { 0xE0, "Credence Systems Corp." },
+ { 0x61, "Genesis Microchip Inc." },
+ { 0x62, "Vihana, Inc." },
+ { 0xE3, "WIS Technologies" },
+ { 0x64, "GateChange Technologies" },
+ { 0xE5, "High Density Devices AS" },
+ { 0xE6, "Synopsys" },
+ { 0x67, "Gigaram" },
+ { 0x68, "Enigma Semiconductor Inc." },
+ { 0xE9, "Century Micro Inc." },
+ { 0xEA, "Icera Semiconductor" },
+ { 0x6B, "Mediaworks Integrated Systems" },
+ { 0xEC, "O’Neil Product Development" },
+ { 0x6D, "Supreme Top Technology Ltd." },
+ { 0x6E, "MicroDisplay Corporation" },
+ { 0xEF, "Team Group Inc." },
+ { 0x70, "Sinett Corporation" },
+ { 0xF1, "Toshiba Corporation" },
+ { 0xF2, "Tensilica" },
+ { 0x73, "SiRF Technology" },
+ { 0xF4, "Bacoc Inc." },
+ { 0x75, "SMaL Camera Technologies" },
+ { 0x76, "Thomson SC" },
+ { 0xF7, "Airgo Networks" },
+ { 0xF8, "Wisair Ltd." },
+ { 0x79, "SigmaTel" },
+ { 0x7A, "Arkados" },
+ { 0xFB, "Compete IT gmbH Co. KG" },
+ { 0x7C, "Eudar Technology Inc." },
+ { 0xFD, "Focus Enhancements" },
+ { 0xFE, "Xyratex" },
+ { 0x00, NULL },
+};
+
+const struct valstr jedec_id6_vals[] = {
+ { 0x01, "Specular Networks" },
+ { 0x02, "Patriot Memory (PDP Systems)" },
+ { 0x83, "U-Chip Technology Corp." },
+ { 0x04, "Silicon Optix" },
+ { 0x85, "Greenfield Networks" },
+ { 0x86, "CompuRAM GmbH" },
+ { 0x07, "Stargen, Inc." },
+ { 0x08, "NetCell Corporation" },
+ { 0x89, "Excalibrus Technologies Ltd" },
+ { 0x8A, "SCM Microsystems" },
+ { 0x0B, "Xsigo Systems, Inc." },
+ { 0x8C, "CHIPS & Systems Inc" },
+ { 0x0D, "Tier 1 Multichip Solutions" },
+ { 0x0E, "CWRL Labs" },
+ { 0x8F, "Teradici" },
+ { 0x10, "Gigaram, Inc." },
+ { 0x91, "g2 Microsystems" },
+ { 0x92, "PowerFlash Semiconductor" },
+ { 0x13, "P.A. Semi, Inc." },
+ { 0x94, "NovaTech Solutions, S.A." },
+ { 0x15, "c2 Microsystems, Inc." },
+ { 0x16, "Level5 Networks" },
+ { 0x97, "COS Memory AG" },
+ { 0x98, "Innovasic Semiconductor" },
+ { 0x19, "02IC Co. Ltd" },
+ { 0x1A, "Tabula, Inc." },
+ { 0x9B, "Crucial Technology" },
+ { 0x1C, "Chelsio Communications" },
+ { 0x9D, "Solarflare Communications" },
+ { 0x9E, "Xambala Inc." },
+ { 0x1F, "EADS Astrium" },
+ { 0x20, "Terra Semiconductor, Inc." },
+ { 0xA1, "Imaging Works, Inc." },
+ { 0xA2, "Astute Networks, Inc." },
+ { 0x23, "Tzero" },
+ { 0xA4, "Emulex" },
+ { 0x25, "Power-One" },
+ { 0x26, "Pulse~LINK Inc." },
+ { 0xA7, "Hon Hai Precision Industry" },
+ { 0xA8, "White Rock Networks Inc." },
+ { 0x29, "Telegent Systems USA, Inc." },
+ { 0x2A, "Atrua Technologies, Inc." },
+ { 0xAB, "Acbel Polytech Inc." },
+ { 0x2C, "eRide Inc." },
+ { 0xAD, "ULi Electronics Inc." },
+ { 0xAE, "Magnum Semiconductor Inc." },
+ { 0x2F, "neoOne Technology, Inc." },
+ { 0xB0, "Connex Technology, Inc." },
+ { 0x31, "Stream Processors, Inc." },
+ { 0x32, "Focus Enhancements" },
+ { 0xB3, "Telecis Wireless, Inc." },
+ { 0x34, "uNav Microelectronics" },
+ { 0xB5, "Tarari, Inc." },
+ { 0xB6, "Ambric, Inc." },
+ { 0x37, "Newport Media, Inc." },
+ { 0x38, "VMTS" },
+ { 0xB9, "Enuclia Semiconductor, Inc." },
+ { 0xBA, "Virtium Technology Inc." },
+ { 0x3B, "Solid State System Co., Ltd." },
+ { 0xBC, "Kian Tech LLC" },
+ { 0x3D, "Artimi" },
+ { 0x3E, "Power Quotient International" },
+ { 0xBF, "Avago Technologies" },
+ { 0x40, "ADTechnology" },
+ { 0xC1, "Sigma Designs" },
+ { 0xC2, "SiCortex, Inc." },
+ { 0x43, "Ventura Technology Group" },
+ { 0xC4, "eASIC" },
+ { 0x45, "M.H.S. SAS" },
+ { 0x46, "Micro Star International" },
+ { 0xC7, "Rapport Inc." },
+ { 0xC8, "Makway International" },
+ { 0x49, "Broad Reach Engineering Co." },
+ { 0x4A, "Semiconductor Mfg Intl Corp" },
+ { 0xCB, "SiConnect" },
+ { 0x4C, "FCI USA Inc." },
+ { 0xCD, "Validity Sensors" },
+ { 0xCE, "Coney Technology Co. Ltd." },
+ { 0x4F, "Spans Logic" },
+ { 0xD0, "Neterion Inc." },
+ { 0x51, "Qimonda" },
+ { 0x52, "New Japan Radio Co. Ltd." },
+ { 0xD3, "Velogix" },
+ { 0x54, "Montalvo Systems" },
+ { 0xD5, "iVivity Inc." },
+ { 0xD6, "Walton Chaintech" },
+ { 0x57, "AENEON" },
+ { 0x58, "Lorom Industrial Co. Ltd." },
+ { 0xD9, "Radiospire Networks" },
+ { 0xDA, "Sensio Technologies, Inc." },
+ { 0x5B, "Nethra Imaging" },
+ { 0xDC, "Hexon Technology Pte Ltd" },
+ { 0x5D, "CompuStocx (CSX)" },
+ { 0x5E, "Methode Electronics, Inc." },
+ { 0xDF, "Connect One Ltd." },
+ { 0xE0, "Opulan Technologies" },
+ { 0x61, "Septentrio NV" },
+ { 0x62, "Goldenmars Technology Inc." },
+ { 0xE3, "Kreton Corporation" },
+ { 0x64, "Cochlear Ltd." },
+ { 0xE5, "Altair Semiconductor" },
+ { 0xE6, "NetEffect, Inc." },
+ { 0x67, "Spansion, Inc." },
+ { 0x68, "Taiwan Semiconductor Mfg" },
+ { 0xE9, "Emphany Systems Inc." },
+ { 0xEA, "ApaceWave Technologies" },
+ { 0x6B, "Mobilygen Corporation" },
+ { 0xEC, "Tego" },
+ { 0x6D, "Cswitch Corporation" },
+ { 0x6E, "Haier (Beijing) IC Design Co." },
+ { 0xEF, "MetaRAM" },
+ { 0x70, "Axel Electronics Co. Ltd." },
+ { 0xF1, "Tilera Corporation" },
+ { 0xF2, "Aquantia" },
+ { 0x73, "Vivace Semiconductor" },
+ { 0xF4, "Redpine Signals" },
+ { 0x75, "Octalica" },
+ { 0x76, "InterDigital Communications" },
+ { 0xF7, "Avant Technology" },
+ { 0xF8, "Asrock, Inc." },
+ { 0x79, "Availink" },
+ { 0x7A, "Quartics, Inc." },
+ { 0xFB, "Element CXI" },
+ { 0x7C, "Innovaciones Microelectronicas" },
+ { 0xFD, "VeriSilicon Microelectronics" },
+ { 0xFE, "W5 Networks" },
+ { 0x00, NULL },
+};
+
+const struct valstr jedec_id7_vals[] = {
+ { 0x01, "MOVEKING" },
+ { 0x02, "Mavrix Technology, Inc." },
+ { 0x83, "CellGuide Ltd." },
+ { 0x04, "Faraday Technology" },
+ { 0x85, "Diablo Technologies, Inc." },
+ { 0x86, "Jennic" },
+ { 0x07, "Octasic" },
+ { 0x08, "Molex Incorporated" },
+ { 0x89, "3Leaf Networks" },
+ { 0x8A, "Bright Micron Technology" },
+ { 0x0B, "Netxen" },
+ { 0x8C, "NextWave Broadband Inc." },
+ { 0x0D, "DisplayLink" },
+ { 0x0E, "ZMOS Technology" },
+ { 0x8F, "Tec-Hill" },
+ { 0x10, "Multigig, Inc." },
+ { 0x91, "Amimon" },
+ { 0x92, "Euphonic Technologies, Inc." },
+ { 0x13, "BRN Phoenix" },
+ { 0x94, "InSilica" },
+ { 0x15, "Ember Corporation" },
+ { 0x16, "Avexir Technologies Corporation" },
+ { 0x97, "Echelon Corporation" },
+ { 0x98, "Edgewater Computer Systems" },
+ { 0x19, "XMOS Semiconductor Ltd." },
+ { 0x1A, "GENUSION, Inc." },
+ { 0x9B, "Memory Corp NV" },
+ { 0x1C, "SiliconBlue Technologies" },
+ { 0x9D, "Rambus Inc." },
+ { 0x9E, "Andes Technology Corporation" },
+ { 0x1F, "Coronis Systems" },
+ { 0x20, "Achronix Semiconductor" },
+ { 0xA1, "Siano Mobile Silicon Ltd." },
+ { 0xA2, "Semtech Corporation" },
+ { 0x23, "Pixelworks Inc." },
+ { 0xA4, "Gaisler Research AB" },
+ { 0x25, "Teranetics" },
+ { 0x26, "Toppan Printing Co. Ltd." },
+ { 0xA7, "Kingxcon" },
+ { 0xA8, "Silicon Integrated Systems" },
+ { 0x29, "I-O Data Device, Inc." },
+ { 0x2A, "NDS Americas Inc." },
+ { 0xAB, "Solomon Systech Limited" },
+ { 0x2C, "On Demand Microelectronics" },
+ { 0xAD, "Amicus Wireless Inc." },
+ { 0xAE, "SMARDTV SNC" },
+ { 0x2F, "Comsys Communication Ltd." },
+ { 0xB0, "Movidia Ltd." },
+ { 0x31, "Javad GNSS, Inc." },
+ { 0x32, "Montage Technology Group" },
+ { 0xB3, "Trident Microsystems" },
+ { 0x34, "Super Talent" },
+ { 0xB5, "Optichron, Inc." },
+ { 0xB6, "Future Waves UK Ltd." },
+ { 0x37, "SiBEAM, Inc." },
+ { 0x38, "Inicore,Inc." },
+ { 0xB9, "Virident Systems" },
+ { 0xBA, "M2000, Inc." },
+ { 0x3B, "ZeroG Wireless, Inc." },
+ { 0xBC, "Gingle Technology Co. Ltd." },
+ { 0x3D, "Space Micro Inc." },
+ { 0x3E, "Wilocity" },
+ { 0xBF, "Novafora, Inc." },
+ { 0x40, "iKoa Corporation" },
+ { 0xC1, "ASint Technology" },
+ { 0xC2, "Ramtron" },
+ { 0x43, "Plato Networks Inc." },
+ { 0xC4, "IPtronics AS" },
+ { 0x45, "Infinite-Memories" },
+ { 0x46, "Parade Technologies Inc." },
+ { 0xC7, "Dune Networks" },
+ { 0xC8, "GigaDevice Semiconductor" },
+ { 0x49, "Modu Ltd." },
+ { 0x4A, "CEITEC" },
+ { 0xCB, "Northrop Grumman" },
+ { 0x4C, "XRONET Corporation" },
+ { 0xCD, "Sicon Semiconductor AB" },
+ { 0xCE, "Atla Electronics Co. Ltd." },
+ { 0x4F, "TOPRAM Technology" },
+ { 0xD0, "Silego Technology Inc." },
+ { 0x51, "Kinglife" },
+ { 0x52, "Ability Industries Ltd." },
+ { 0xD3, "Silicon Power Computer & Communications" },
+ { 0x54, "Augusta Technology, Inc." },
+ { 0xD5, "Nantronics Semiconductors" },
+ { 0xD6, "Hilscher Gesellschaft" },
+ { 0x57, "Quixant Ltd." },
+ { 0x58, "Percello Ltd." },
+ { 0xD9, "NextIO Inc." },
+ { 0xDA, "Scanimetrics Inc." },
+ { 0x5B, "FS-Semi Company Ltd." },
+ { 0xDC, "Infinera Corporation" },
+ { 0x5D, "SandForce Inc." },
+ { 0x5E, "Lexar Media" },
+ { 0xDF, "Teradyne Inc." },
+ { 0xE0, "Memory Exchange Corp." },
+ { 0x61, "Suzhou Smartek Electronics" },
+ { 0x62, "Avantium Corporation" },
+ { 0xE3, "ATP Electronics Inc." },
+ { 0x64, "Valens Semiconductor Ltd" },
+ { 0xE5, "Agate Logic, Inc." },
+ { 0xE6, "Netronome" },
+ { 0x67, "Zenverge, Inc." },
+ { 0x68, "N-trig Ltd" },
+ { 0xE9, "SanMax Technologies Inc." },
+ { 0xEA, "Contour Semiconductor Inc." },
+ { 0x6B, "TwinMOS" },
+ { 0xEC, "Silicon Systems, Inc." },
+ { 0x6D, "V-Color Technology Inc." },
+ { 0x6E, "Certicom Corporation" },
+ { 0xEF, "JSC ICC Milandr" },
+ { 0x70, "PhotoFast Global Inc." },
+ { 0xF1, "InnoDisk Corporation" },
+ { 0xF2, "Muscle Power" },
+ { 0x73, "Energy Micro" },
+ { 0xF4, "Innofidei" },
+ { 0x75, "CopperGate Communications" },
+ { 0x76, "Holtek Semiconductor Inc." },
+ { 0xF7, "Myson Century, Inc." },
+ { 0xF8, "FIDELIX" },
+ { 0x79, "Red Digital Cinema" },
+ { 0x7A, "Densbits Technology" },
+ { 0xFB, "Zempro" },
+ { 0x7C, "MoSys" },
+ { 0xFD, "Provigent" },
+ { 0xFE, "Triad Semiconductor, Inc." },
+ { 0x00, NULL },
+};
+
+const struct valstr jedec_id8_vals[] = {
+ { 0x01, "Siklu Communication Ltd." },
+ { 0x02, "A Force Manufacturing Ltd." },
+ { 0x83, "Strontium" },
+ { 0x04, "Abilis Systems" },
+ { 0x85, "Siglead, Inc." },
+ { 0x86, "Ubicom, Inc." },
+ { 0x07, "Unifosa Corporation" },
+ { 0x08, "Stretch, Inc." },
+ { 0x89, "Lantiq Deutschland GmbH" },
+ { 0x8A, "Visipro." },
+ { 0x0B, "EKMemory" },
+ { 0x8C, "Microelectronics Institute ZTE" },
+ { 0x0D, "Cognovo Ltd." },
+ { 0x0E, "Carry Technology Co. Ltd." },
+ { 0x8F, "Nokia" },
+ { 0x10, "King Tiger Technology" },
+ { 0x91, "Sierra Wireless" },
+ { 0x92, "HT Micron" },
+ { 0x13, "Albatron Technology Co. Ltd." },
+ { 0x94, "Leica Geosystems AG" },
+ { 0x15, "BroadLight" },
+ { 0x16, "AEXEA" },
+ { 0x97, "ClariPhy Communications, Inc." },
+ { 0x98, "Green Plug" },
+ { 0x19, "Design Art Networks" },
+ { 0x1A, "Mach Xtreme Technology Ltd." },
+ { 0x9B, "ATO Solutions Co. Ltd." },
+ { 0x1C, "Ramsta" },
+ { 0x9D, "Greenliant Systems, Ltd." },
+ { 0x9E, "Teikon" },
+ { 0x1F, "Antec Hadron" },
+ { 0x20, "NavCom Technology, Inc." },
+ { 0xA1, "Shanghai Fudan Microelectronics" },
+ { 0xA2, "Calxeda, Inc." },
+ { 0x23, "JSC EDC Electronics" },
+ { 0xA4, "Kandit Technology Co. Ltd." },
+ { 0x25, "Ramos Technology" },
+ { 0x26, "Goldenmars Technology" },
+ { 0xA7, "XeL Technology Inc." },
+ { 0xA8, "Newzone Corporation" },
+ { 0x29, "ShenZhen MercyPower Tech" },
+ { 0x2A, "Nanjing Yihuo Technology" },
+ { 0xAB, "Nethra Imaging Inc." },
+ { 0x2C, "SiTel Semiconductor BV" },
+ { 0xAD, "SolidGear Corporation" },
+ { 0xAE, "Topower Computer Ind Co Ltd." },
+ { 0x2F, "Wilocity" },
+ { 0xB0, "Profichip GmbH" },
+ { 0x31, "Gerad Technologies" },
+ { 0x32, "Ritek Corporation" },
+ { 0xB3, "Gomos Technology Limited" },
+ { 0x34, "Memoright Corporation" },
+ { 0xB5, "D-Broad, Inc." },
+ { 0xB6, "HiSilicon Technologies" },
+ { 0x37, "Syndiant Inc.." },
+ { 0x38, "Enverv Inc." },
+ { 0xB9, "Cognex" },
+ { 0xBA, "Xinnova Technology Inc." },
+ { 0x3B, "Ultron AG" },
+ { 0xBC, "Concord Idea Corporation" },
+ { 0x3D, "AIM Corporation" },
+ { 0x3E, "Lifetime Memory Products" },
+ { 0xBF, "Ramsway" },
+ { 0x40, "Recore Systems B.V." },
+ { 0xC1, "Haotian Jinshibo Science Tech" },
+ { 0xC2, "Being Advanced Memory" },
+ { 0x43, "Adesto Technologies" },
+ { 0xC4, "Giantec Semiconductor, Inc." },
+ { 0x45, "HMD Electronics AG" },
+ { 0x46, "Gloway International (HK)" },
+ { 0xC7, "Kingcore" },
+ { 0xC8, "Anucell Technology Holding" },
+ { 0x49, "Accord Software & Systems Pvt. Ltd." },
+ { 0x4A, "Active-Semi Inc." },
+ { 0xCB, "Denso Corporation" },
+ { 0x4C, "TLSI Inc." },
+ { 0xCD, "Qidan" },
+ { 0xCE, "Mustang" },
+ { 0x4F, "Orca Systems" },
+ { 0xD0, "Passif Semiconductor" },
+ { 0x51, "GigaDevice Semiconductor (Beijing) Inc." },
+ { 0x52, "Memphis Electronic" },
+ { 0xD3, "Beckhoff Automation GmbH" },
+ { 0x54, "Harmony Semiconductor Corp" },
+ { 0xD5, "Air Computers SRL" },
+ { 0xD6, "TMT Memory" },
+ { 0x57, "Eorex Corporation" },
+ { 0x58, "Xingtera" },
+ { 0xD9, "Netsol" },
+ { 0xDA, "Bestdon Technology Co. Ltd." },
+ { 0x5B, "Baysand Inc." },
+ { 0xDC, "Uroad Technology Co. Ltd." },
+ { 0x5D, "Wilk Elektronik S.A." },
+ { 0x5E, "AAI" },
+ { 0xDF, "Harman" },
+ { 0xE0, "Berg Microelectronics Inc." },
+ { 0x61, "ASSIA, Inc." },
+ { 0x62, "Visiontek Products LLC" },
+ { 0xE3, "OCMEMORY" },
+ { 0x64, "Welink Solution Inc." },
+ { 0xE5, "Shark Gaming" },
+ { 0xE6, "Avalanche Technology" },
+ { 0x67, "R&D Center ELVEES OJSC" },
+ { 0x68, "KingboMars Technology Co. Ltd." },
+ { 0xE9, "High Bridge Solutions Industria Eletronica" },
+ { 0xEA, "Transcend Technology Co. Ltd." },
+ { 0x6B, "Everspin Technologies" },
+ { 0xEC, "Hon-Hai Precision" },
+ { 0x6D, "Smart Storage Systems" },
+ { 0x6E, "Toumaz Group" },
+ { 0xEF, "Zentel Electronics Corporation" },
+ { 0x70, "Panram International Corporation" },
+ { 0xF1, "Silicon Space Technology" },
+ { 0xF2, "LITE-ON IT Corporation" },
+ { 0x73, "Inuitive" },
+ { 0xF4, "HMicro" },
+ { 0x75, "BittWare, Inc." },
+ { 0x76, "GLOBALFOUNDRIES" },
+ { 0xF7, "ACPI Digital Co. Ltd." },
+ { 0xF8, "Annapurna Labs" },
+ { 0x79, "AcSiP Technology Corporation" },
+ { 0x7A, "Idea! Electronic Systems" },
+ { 0xFB, "Gowe Technology Co. Ltd." },
+ { 0x7C, "Hermes Testing Solutions, Inc." },
+ { 0xFD, "Positivo BGH" },
+ { 0xFE, "Intelligence Silicon Technology" },
+ { 0x00, NULL },
+};
+
+const struct valstr jedec_id9_vals[] = {
+ { 0x01, "3D PLUS" },
+ { 0x02, "Diehl Aerospace" },
+ { 0x83, "Fairchild" },
+ { 0x04, "Mercury Systems" },
+ { 0x85, "Sonics, Inc." },
+ { 0x86, "GE Intelligent Platforms GmbH & Co." },
+ { 0x07, "Shenzhen Jinge Information Co. Ltd." },
+ { 0x08, "SCWW" },
+ { 0x89, "Silicon Motion Inc." },
+ { 0x8A, "Anurag" },
+ { 0x0B, "King Kong" },
+ { 0x8C, "FROM30 Co. Ltd." },
+ { 0x0D, "Gowin Semiconductor Corp" },
+ { 0x0E, "Fremont Micro Devices Ltd." },
+ { 0x8F, "Ericsson Modems" },
+ { 0x10, "Exelis" },
+ { 0x91, "Satixfy Ltd." },
+ { 0x92, "Galaxy Microsystems Ltd." },
+ { 0x13, "Gloway International Co. Ltd." },
+ { 0x94, "Lab" },
+ { 0x15, "Smart Energy Instruments" },
+ { 0x16, "Approved Memory Corporation" },
+ { 0x97, "Axell Corporation" },
+ { 0x98, "Essencore Limited" },
+ { 0x19, "Phytium" },
+ { 0x1A, "Xi’an SinoChip Semiconductor" },
+ { 0x9B, "Ambiq Micro" },
+ { 0x1C, "eveRAM Technology, Inc." },
+ { 0x9D, "Infomax" },
+ { 0x9E, "Butterfly Network, Inc." },
+ { 0x1F, "Shenzhen City Gcai Electronics" },
+ { 0x20, "Stack Devices Corporation" },
+ { 0xA1, "ADK Media Group" },
+ { 0xA2, "TSP Global Co., Ltd." },
+ { 0x23, "HighX" },
+ { 0xA4, "Shenzhen Elicks Technology" },
+ { 0x25, "ISSI/Chingis" },
+ { 0x26, "Google, Inc." },
+ { 0xA7, "Dasima International Development" },
+ { 0xA8, "Leahkinn Technology Limited" },
+ { 0x29, "HIMA Paul Hildebrandt GmbH Co KG" },
+ { 0x2A, "Keysight Technologies" },
+ { 0xAB, "Techcomp International (Fastable)" },
+ { 0x2C, "Ancore Technology Corporation" },
+ { 0xAD, "Nuvoton" },
+ { 0xAE, "Korea Uhbele International Group Ltd." },
+ { 0x2F, "Ikegami Tsushinki Co Ltd." },
+ { 0xB0, "RelChip, Inc." },
+ { 0x31, "Baikal Electronics" },
+ { 0x32, "Nemostech Inc." },
+ { 0xB3, "Memorysolution GmbH" },
+ { 0x34, "Silicon Integrated Systems Corporation" },
+ { 0xB5, "Xiede" },
+ { 0xB6, "Multilaser Components" },
+ { 0x37, "Flash Chi" },
+ { 0x38, "Jone" },
+ { 0xB9, "GCT Semiconductor Inc." },
+ { 0xBA, "Hong Kong Zetta Device Technology" },
+ { 0x3B, "Unimemory Technology(s) Pte Ltd." },
+ { 0xBC, "Cuso" },
+ { 0x3D, "Kuso" },
+ { 0x3E, "Uniquify Inc." },
+ { 0xBF, "Skymedi Corporation" },
+ { 0x40, "Core Chance Co. Ltd." },
+ { 0xC1, "Tekism Co. Ltd." },
+ { 0xC2, "Seagate Technology PLC" },
+ { 0x43, "Hong Kong Gaia Group Co. Limited" },
+ { 0xC4, "Gigacom Semiconductor LLC" },
+ { 0x45, "V2 Technologies" },
+ { 0x46, "TLi" },
+ { 0xC7, "Neotion" },
+ { 0xC8, "Lenovo" },
+ { 0x49, "Shenzhen Zhongteng Electronic Corp. Ltd." },
+ { 0x4A, "Compound Photonics" },
+ { 0xCB, "in2H2 inc" },
+ { 0x4C, "Shenzhen Pango Microsystems Co. Ltd" },
+ { 0xCD, "Vasekey" },
+ { 0xCE, "Cal-Comp Industria de Semicondutores" },
+ { 0x4F, "Eyenix Co., Ltd." },
+ { 0xD0, "Heoriady" },
+ { 0x51, "Accelerated Memory Production Inc." },
+ { 0x52, "INVECAS, Inc." },
+ { 0xD3, "AP Memory" },
+ { 0x54, "Douqi Technology" },
+ { 0xD5, "Etron Technology, Inc." },
+ { 0xD6, "Indie Semiconductor" },
+ { 0x57, "Socionext Inc." },
+ { 0x58, "HGST" },
+ { 0xD9, "EVGA" },
+ { 0xDA, "Audience Inc." },
+ { 0x5B, "EpicGear" },
+ { 0xDC, "Vitesse Enterprise Co." },
+ { 0x5D, "Foxtronn International Corporation" },
+ { 0x5E, "Bretelon Inc." },
+ { 0xDF, "Zbit Semiconductor, Inc." },
+ { 0xE0, "Eoplex Inc" },
+ { 0x61, "MaxLinear, Inc." },
+ { 0x62, "ETA Devices" },
+ { 0xE3, "LOKI" },
+ { 0x64, "IMS Semiconductor Co., Ltd" },
+ { 0xE5, "Dosilicon Co., Ltd." },
+ { 0xE6, "Dolphin Integration" },
+ { 0x67, "Shenzhen Mic Electronics Technology" },
+ { 0x68, "Boya Microelectronics Inc." },
+ { 0xE9, "Geniachip (Roche)" },
+ { 0xEA, "Axign" },
+ { 0x6B, "Kingred Electronic Technology Ltd." },
+ { 0xEC, "Chao Yue Zhuo Computer Business Dept." },
+ { 0x6D, "Guangzhou Si Nuo Electronic Technology." },
{ 0x00, NULL },
};
@@ -842,6 +1396,22 @@ ipmi_spd_print(uint8_t *spd_data, int len)
printf("%s\n", val2str(spd_data[118], jedec_id5_vals));
break;
+ case 5:
+ printf("%s\n", val2str(spd_data[118], jedec_id6_vals));
+ break;
+
+ case 6:
+ printf("%s\n", val2str(spd_data[118], jedec_id7_vals));
+ break;
+
+ case 7:
+ printf("%s\n", val2str(spd_data[118], jedec_id8_vals));
+ break;
+
+ case 8:
+ printf("%s\n", val2str(spd_data[118], jedec_id9_vals));
+ break;
+
default:
printf("%s\n", "JEDEC JEP106 update required" );
@@ -928,6 +1498,22 @@ ipmi_spd_print(uint8_t *spd_data, int len)
printf("%s\n", val2str(spd_data[321], jedec_id5_vals));
break;
+ case 5:
+ printf("%s\n", val2str(spd_data[321], jedec_id6_vals));
+ break;
+
+ case 6:
+ printf("%s\n", val2str(spd_data[321], jedec_id7_vals));
+ break;
+
+ case 7:
+ printf("%s\n", val2str(spd_data[321], jedec_id8_vals));
+ break;
+
+ case 8:
+ printf("%s\n", val2str(spd_data[321], jedec_id9_vals));
+ break;
+
default:
printf("%s\n", "JEDEC JEP106 update required");
@@ -983,12 +1569,30 @@ ipmi_spd_print(uint8_t *spd_data, int len)
else {
if (spd_data[67] != 0x7f)
printf("%s\n",
- val2str(spd_data[67],
- jedec_id4_vals));
- else
- printf("%s\n",
- val2str(spd_data[68],
- jedec_id5_vals));
+ val2str(spd_data[67], jedec_id4_vals));
+ else {
+ if (spd_data[68] != 0x7f)
+ printf("%s\n",
+ val2str(spd_data[68], jedec_id5_vals));
+ else {
+ if (spd_data[69] != 0x7f)
+ printf("%s\n",
+ val2str(spd_data[69], jedec_id6_vals));
+ else {
+ if (spd_data[70] != 0x7f)
+ printf("%s\n",
+ val2str(spd_data[70], jedec_id7_vals));
+ else {
+ if (spd_data[71] != 0x7f)
+ printf("%s\n",
+ val2str(spd_data[71], jedec_id8_vals));
+ else
+ printf("%s\n",
+ val2str(spd_data[72], jedec_id9_vals));
+ }
+ }
+ }
+ }
}
}
}
diff --git a/lib/helper.c b/lib/helper.c
index b9316c4..022a9c9 100644
--- a/lib/helper.c
+++ b/lib/helper.c
@@ -30,6 +30,11 @@
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
#define _POSIX_SOURCE
+#define /* glibc 2.19 and earlier */ _BSD_SOURCE || \
+ /* Since glibc 2.20 */_DEFAULT_SOURCE || \
+ _XOPEN_SOURCE >= 500 || \
+ _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED || \
+ /* Since glibc 2.10: */ _POSIX_C_SOURCE >= 200112L \
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/lib/hpm2.c b/lib/hpm2.c
index 6420629..52e5366 100644
--- a/lib/hpm2.c
+++ b/lib/hpm2.c
@@ -36,6 +36,12 @@
#include <ipmitool/log.h>
#include <ipmitool/bswap.h>
+/* From src/plugins/ipmi_intf.c: */
+void
+ipmi_intf_set_max_request_data_size(struct ipmi_intf * intf, uint16_t size);
+void
+ipmi_intf_set_max_response_data_size(struct ipmi_intf * intf, uint16_t size);
+
#if HAVE_PRAGMA_PACK
# pragma pack(push, 1)
#endif
@@ -128,7 +134,7 @@ int hpm2_get_capabilities(struct ipmi_intf * intf,
#endif
/* check HPM.2 revision */
- if (caps->hpm2_revision_id != HPM2_REVISION) {
+ if (caps->hpm2_revision_id == 0) {
lprintf(LOG_NOTICE, "Bad HPM.2 revision, rev=%d",
caps->hpm2_revision_id);
return -1;
diff --git a/lib/ipmi_chassis.c b/lib/ipmi_chassis.c
index d4e88ee..fb7c27d 100644
--- a/lib/ipmi_chassis.c
+++ b/lib/ipmi_chassis.c
@@ -29,6 +29,8 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE >= 1 || \
+ _XOPEN_SOURCE || _POSIX_SOURCE
#include <stdlib.h>
#include <string.h>
@@ -110,12 +112,6 @@ ipmi_chassis_power_control(struct ipmi_intf * intf, uint8_t ctl)
printf("Chassis Power Control: %s\n",
val2str(ctl, ipmi_chassis_power_control_vals));
-
-#if 0 /* this can cause sessions to hang around after power commands */
- /* sessions often get lost when changing chassis power */
- intf->abort = 1;
-#endif
-
return 0;
}
diff --git a/lib/ipmi_dcmi.c b/lib/ipmi_dcmi.c
index aeee944..2cfe48f 100755
--- a/lib/ipmi_dcmi.c
+++ b/lib/ipmi_dcmi.c
@@ -36,6 +36,7 @@
* This code conforms to the 1.0 DCMI Specification
* released by Hari Ramachandran of the Intel Corporation
*/
+#define _BSD_SOURCE
#include <stdlib.h>
#include <string.h>
@@ -671,7 +672,7 @@ chk_nm_rsp(struct ipmi_rs * rsp)
* some issue and cannot complete the command
*/
if (rsp == NULL) {
- lprintf(LOG_ERR, "\n No reponse to NM request");
+ lprintf(LOG_ERR, "\n No response to NM request");
return 1;
}
/* if the completion code is greater than zero there was an error. We'll
@@ -1426,7 +1427,7 @@ ipmi_dcmi_getthermalpolicy(struct ipmi_intf * intf, uint8_t entityID,
/* rsp->data[0] is equal to response data byte 2 in spec */
memcpy(&val, rsp->data, sizeof (val));
printf("\n");
- printf(" Persistance flag is: %s\n",
+ printf(" Persistence flag is: %s\n",
((val.exceptionActions & 0x80) ? "set" : "notset"));
printf(" Exception Actions, taken if the Temperature Limit exceeded:\n");
printf(" Hard Power Off system and log event: %s\n",
@@ -1768,16 +1769,6 @@ ipmi_dcmi_pwr_slimit(struct ipmi_intf * intf, const char * option,
uint32_t lvalue = 0;
rsp = ipmi_dcmi_pwr_glimit(intf); /* get the power limit settings */
-# if 0
- {
- unsigned char counter = 0;
- printf("DATA (%d): ", rsp->data_len);
- for(counter = 0; counter < rsp->data_len; counter ++) {
- printf("%02X ", rsp->data[counter]);
- }
- printf("\n");
- }
-# endif
/* rsp can be a null so check response before any operation on it to
* avoid sig segv
*/
@@ -3163,7 +3154,7 @@ ipmi_nm_thresh(struct ipmi_intf * intf, int argc, char **argv)
return -1;
}
if (str2ushort(argv[0], &thresh.thresholds[i++]) < 0) {
- lprintf(LOG_ERR,"threshold value %d count must be a positve integer.\n", i);
+ lprintf(LOG_ERR,"threshold value %d count must be a positive integer.\n", i);
return -1;
}
default:
diff --git a/lib/ipmi_delloem.c b/lib/ipmi_delloem.c
index 2214c99..9bb0885 100644
--- a/lib/ipmi_delloem.c
+++ b/lib/ipmi_delloem.c
@@ -251,6 +251,9 @@ static int ipmi_setled_state(struct ipmi_intf *intf, int bayId, int slotId,
int state);
static int ipmi_getdrivemap(struct ipmi_intf *intf, int b, int d, int f,
int *bayId, int *slotId);
+static int
+get_nic_selection_mode_12g(struct ipmi_intf* intf,int current_arg,
+ char ** argv, char *nic_set);
/* Function Name: ipmi_delloem_main
*
@@ -2051,7 +2054,7 @@ IsLANSupported()
return 1;
}
-int
+static int
get_nic_selection_mode_12g(struct ipmi_intf* intf,int current_arg,
char ** argv, char *nic_set)
{
@@ -2783,8 +2786,6 @@ ipmi_set_power_capstatus_command(struct ipmi_intf * intf, uint8_t val)
static int
ipmi_powermgmt(struct ipmi_intf * intf)
{
- time_t now;
- struct tm* tm;
struct ipmi_rs * rsp;
struct ipmi_rq req;
uint8_t msg_data[2];
@@ -2811,9 +2812,6 @@ ipmi_powermgmt(struct ipmi_intf * intf)
int remainder;
int wattReading;
- now = time(0);
- tm = gmtime(&now);
-
memset(&req, 0, sizeof(req));
req.msg.netfn = IPMI_NETFN_STORAGE;
req.msg.lun = 0;
@@ -2893,7 +2891,6 @@ ipmi_powermgmt(struct ipmi_intf * intf)
ipmi_time_to_str(ampPeakTimeConv, ampPeakTime);
ipmi_time_to_str(wattPeakTimeConv, wattPeakTime);
ipmi_time_to_str(bmctimeconv, bmctime);
- now = time(0);
remainder = (cumReadingConv % 1000);
cumReadingConv = cumReadingConv / 1000;
@@ -3645,7 +3642,6 @@ ipmi_set_power_cap(struct ipmi_intf * intf, int unit, int val)
uint8_t data[13], *rdata;
uint16_t powercapval;
uint64_t maxpowerbtuphr;
- uint64_t maxpowerbtuphr1;
uint64_t minpowerbtuphr;
IPMI_POWER_CAP ipmipowercap;
@@ -3733,11 +3729,10 @@ ipmi_set_power_cap(struct ipmi_intf * intf, int unit, int val)
|| (val > ipmipowercap.MaximumPowerConsmp)) && (unit == btuphr)) {
minpowerbtuphr = watt_to_btuphr_conversion(ipmipowercap.MinimumPowerConsmp);
maxpowerbtuphr = watt_to_btuphr_conversion(ipmipowercap.MaximumPowerConsmp);
- maxpowerbtuphr1 = watt_to_btuphr_conversion(ipmipowercap.MaximumPowerConsmp);
lprintf(LOG_ERR,
"Cap value is out of boundary conditon it should be between %d",
minpowerbtuphr);
- lprintf(LOG_ERR, " -%d", maxpowerbtuphr1);
+ lprintf(LOG_ERR, " -%d", maxpowerbtuphr);
return -1;
}
rc = ipmi_mc_setsysinfo(intf, 13, data);
diff --git a/lib/ipmi_ekanalyzer.c b/lib/ipmi_ekanalyzer.c
index afee48b..d6ce4c7 100644
--- a/lib/ipmi_ekanalyzer.c
+++ b/lib/ipmi_ekanalyzer.c
@@ -458,7 +458,6 @@ ipmi_ekanalyzer_main(struct ipmi_intf *intf, int argc, char **argv)
{
int rc = ERROR_STATUS;
int file_type[MAX_FILE_NUMBER];
- int tmp_ret = 0;
char *filename[MAX_FILE_NUMBER];
unsigned int argument_offset = 0;
unsigned int type_offset = 0;
@@ -508,7 +507,7 @@ ipmi_ekanalyzer_main(struct ipmi_intf *intf, int argc, char **argv)
rc = ipmi_ek_display_fru_header (filename[type_offset]);
if (rc != ERROR_STATUS) {
/* Display FRU header info in detail record */
- tmp_ret = ipmi_ek_display_fru_header_detail(filename[type_offset]);
+ rc = ipmi_ek_display_fru_header_detail(filename[type_offset]);
/* Convert from binary data into multi record structure */
rc = ipmi_ekanalyzer_fru_file2structure (filename[type_offset],
&list_head, &list_record, &list_last );
@@ -2425,7 +2424,7 @@ ipmi_ek_display_fru_header_detail(char *filename)
return (-1);
}
/*** Display FRU Internal Use Info ***/
- if (!feof(input_file)) {
+ if (header.offset.internal != 0) {
unsigned char format_version;
unsigned long len = 0;
@@ -2868,7 +2867,6 @@ ipmi_ek_display_product_info_area(FILE *input_file, long offset)
return (-1);
}
- fread(&data, 1, 1, input_file);
printf("Language Code: %d\n", data);
len--;
/* Product Mfg */
diff --git a/lib/ipmi_event.c b/lib/ipmi_event.c
index 2f1032e..16fc80d 100644
--- a/lib/ipmi_event.c
+++ b/lib/ipmi_event.c
@@ -29,6 +29,7 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _BSD_SOURCE
#include <stdlib.h>
#include <stdio.h>
diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c
index 40f98e7..5c94b08 100644
--- a/lib/ipmi_fru.c
+++ b/lib/ipmi_fru.c
@@ -50,6 +50,16 @@
#define FRU_MULTIREC_CHUNK_SIZE (255 + sizeof(struct fru_multirec_header))
+/* From lib/dimm_spd.c: */
+int
+ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id);
+
+/* From src/plugins/ipmi_intf.c: */
+void
+ipmi_intf_set_max_request_data_size(struct ipmi_intf * intf, uint16_t size);
+void
+ipmi_intf_set_max_response_data_size(struct ipmi_intf * intf, uint16_t size);
+
extern int verbose;
static void ipmi_fru_read_to_bin(struct ipmi_intf * intf, char * pFileName, uint8_t fruId);
@@ -810,12 +820,11 @@ fru_area_print_multirec_bloc(struct ipmi_intf * intf, struct fru_info * fru,
uint8_t id, uint32_t offset)
{
uint8_t * fru_data = NULL;
- uint32_t fru_len, i;
+ uint32_t i;
struct fru_multirec_header * h;
uint32_t last_off, len;
i = last_off = offset;
- fru_len = 0;
fru_data = malloc(fru->size + 1);
if (fru_data == NULL) {
@@ -1592,7 +1601,6 @@ static void ipmi_fru_oemkontron_get( int argc, char ** argv,uint8_t * fru_data,
printf("Kontron OEM Information Record\n");
version = oh->record_version;
- int blockstart;
uint8_t blockCount;
uint8_t blockIndex=0;
@@ -1613,7 +1621,6 @@ static void ipmi_fru_oemkontron_get( int argc, char ** argv,uint8_t * fru_data,
void * pRecordData;
uint8_t nameLen;
- blockstart = offset;
nameLen = ( fru_data[offset++] &= 0x3F );
printf(" Name: %*.*s\n",nameLen, nameLen, (const char *)(fru_data+offset));
@@ -1743,7 +1750,6 @@ static int ipmi_fru_oemkontron_edit( int argc, char ** argv,uint8_t * fru_data,
version = oh->record_version;
if( version == formatVersion ){
- int blockstart;
uint8_t blockCount;
uint8_t blockIndex=0;
@@ -1765,8 +1771,6 @@ static int ipmi_fru_oemkontron_edit( int argc, char ** argv,uint8_t * fru_data,
void * pRecordData;
uint8_t nameLen;
- blockstart = offset;
-
nameLen = ( fru_data[offset++] & 0x3F );
if( version == 0 || version == 1 )
@@ -3357,6 +3361,9 @@ ipmi_fru_edit_multirec(struct ipmi_intf * intf, uint8_t id ,
retStatus = ipmi_fru_get_multirec_location_from_fru(intf, id, &fruInfo,
&offFruMultiRec,
&fruMultiRecSize);
+ if (retStatus != 0) {
+ return retStatus;
+ }
lprintf(LOG_DEBUG, "FRU Size : %lu\n", fruMultiRecSize);
@@ -3406,14 +3413,13 @@ ipmi_fru_edit_multirec(struct ipmi_intf * intf, uint8_t id ,
{
uint8_t * fru_data;
- uint32_t fru_len, i;
+ uint32_t i;
uint32_t offset= offFruMultiRec;
struct fru_multirec_header * h;
uint32_t last_off, len;
uint8_t error=0;
i = last_off = offset;
- fru_len = 0;
memset(&fru, 0, sizeof(fru));
fru_data = malloc(fru.size + 1);
@@ -3560,6 +3566,9 @@ ipmi_fru_get_multirec(struct ipmi_intf * intf, uint8_t id ,
retStatus = ipmi_fru_get_multirec_location_from_fru(intf, id, &fruInfo,
&offFruMultiRec,
&fruMultiRecSize);
+ if (retStatus != 0) {
+ return retStatus;
+ }
lprintf(LOG_DEBUG, "FRU Size : %lu\n", fruMultiRecSize);
@@ -3609,14 +3618,13 @@ ipmi_fru_get_multirec(struct ipmi_intf * intf, uint8_t id ,
{
uint8_t * fru_data;
- uint32_t fru_len, i;
+ uint32_t i;
uint32_t offset= offFruMultiRec;
struct fru_multirec_header * h;
uint32_t last_off, len;
uint8_t error=0;
i = last_off = offset;
- fru_len = 0;
fru_data = malloc(fru.size + 1);
if (fru_data == NULL) {
@@ -4851,7 +4859,7 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId,
uint8_t *fru_data_new = NULL;
uint8_t *fru_area = NULL;
uint32_t fru_field_offset, fru_field_offset_tmp;
- uint32_t fru_section_len, old_section_len, header_offset;
+ uint32_t fru_section_len, header_offset;
uint32_t chassis_offset, board_offset, product_offset;
uint32_t chassis_len, board_len, product_len, product_len_new;
int num_byte_change = 0, padding_len = 0;
@@ -4925,9 +4933,6 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId,
goto ipmi_fru_set_field_string_rebuild_out;
}
- /* Keep length for future old section display */
- old_section_len = fru_section_len;
-
/*************************
3) Seek to field index */
for (i = 0;i <= f_index; i++) {
@@ -5042,6 +5047,11 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId,
header.offset.product += change_size_by_8;
}
+ if ((f_type == 'c' ) || (f_type == 'b' ) || (f_type == 'p' )) {
+ printf("Change multi offset from %d to %d\n", header.offset.multi, header.offset.multi + change_size_by_8);
+ header.offset.multi += change_size_by_8;
+ }
+
/* Adjust length of the section */
if (f_type == 'c')
{
@@ -5141,31 +5151,6 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId,
#ifdef DBG_RESIZE_FRU
printf("Calculate New Checksum: %x\n", (0 - cksum));
#endif
-
- /****** ENABLE to show section modified before and after ********/
- #if 0
- printf("Section: ");
- for( counter = 0; counter <old_section_len; counter ++ )
- {
- if((counter %16) == 0)
- {
- printf("\n");
- }
- printf( "%02X ", *(fru_data_old + header_offset + counter) );
- }
- printf("\n");
-
- printf("Section: ");
- for( counter = 0; counter <fru_section_len; counter ++ )
- {
- if((counter %16) == 0)
- {
- printf("\n");
- }
- printf( "%02X ", *(fru_data_new + header_offset + counter) );
- }
- printf("\n");
- #endif
}
else
{
diff --git a/lib/ipmi_hpmfwupg.c b/lib/ipmi_hpmfwupg.c
index 8ada69b..9cbd4ff 100644
--- a/lib/ipmi_hpmfwupg.c
+++ b/lib/ipmi_hpmfwupg.c
@@ -30,6 +30,10 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _BSD_SOURCE || \
+ (_XOPEN_SOURCE >= 500 || \
+ _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && \
+ !(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700)
#include <ipmitool/ipmi_intf.h>
#include <ipmitool/ipmi_mc.h>
@@ -38,14 +42,20 @@
#include <ipmitool/ipmi_strings.h>
#include <ipmitool/log.h>
#include "../src/plugins/lan/md5.h"
+#include <ctype.h>
#include <stdio.h>
#include <time.h>
#include <sys/param.h>
+#include <unistd.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
+/* From src/plugins/ipmi_intf.c: */
+uint16_t
+ipmi_intf_get_max_request_data_size(struct ipmi_intf * intf);
+
extern int verbose;
int HpmfwupgUpgrade(struct ipmi_intf *intf, char *imageFilename,
@@ -106,6 +116,10 @@ int HpmFwupgActionUploadFirmware(struct HpmfwupgComponentBitMask components,
struct ipmi_intf *intf,
int option,
int *pFlagColdReset);
+int
+HpmfwupgPreUpgradeCheck(struct ipmi_intf *intf,
+ struct HpmfwupgUpgradeCtx *pFwupgCtx,
+ int componentMask, int option);
/* HpmGetuserInput - get input from user
*
@@ -294,7 +308,6 @@ HpmfwupgTargetCheck(struct ipmi_intf *intf, int option)
struct HpmfwupgGetTargetUpgCapabilitiesCtx targetCapCmd;
int rc = HPMFWUPG_SUCCESS;
int componentId = 0;
- int flagColdReset = FALSE;
struct ipm_devid_rsp devIdrsp;
struct HpmfwupgGetComponentPropertiesCtx getCompProp;
int mode = 0;
@@ -431,13 +444,6 @@ HpmfwupgTargetCheck(struct ipmi_intf *intf, int option)
gVersionInfo[componentId].deferredAux[2] = 0xff;
gVersionInfo[componentId].deferredAux[3] = 0xff;
}
- if (gVersionInfo[componentId].coldResetRequired) {
- /*
- * If any of the component indicates that the Payload Cold reset is required
- * then set the flag
- */
- flagColdReset = TRUE;
- }
if (option & VIEW_MODE) {
HpmDisplayVersion(mode,
&gVersionInfo[componentId],
@@ -996,14 +1002,11 @@ HpmfwupgUpgradeStage(struct ipmi_intf *intf,
struct HpmfwupgActionRecord* pActionRecord;
int rc = HPMFWUPG_SUCCESS;
unsigned char *pImagePtr;
- unsigned int actionsSize;
int flagColdReset = FALSE;
/* Put pointer after image header */
pImagePtr = (unsigned char*)
(pFwupgCtx->pImageData + sizeof(struct HpmfwupgImageHeader) +
pImageHeader->oemDataLength + sizeof(unsigned char)/*checksum*/);
- /* Deternime actions size */
- actionsSize = pFwupgCtx->imageSize - sizeof(struct HpmfwupgImageHeader);
if (!(option & VIEW_MODE)) {
HpmDisplayUpgradeHeader();
}
@@ -2021,13 +2024,13 @@ HpmfwupgQueryRollbackStatus(struct ipmi_intf *intf,
memcpy(&pCtx->resp, rsp->data,
sizeof(struct HpmfwupgQueryRollbackStatusResp));
if (pCtx->resp.rollbackComp.ComponentBits.byte != 0) {
- /* Rollback occured */
+ /* Rollback occurred */
lprintf(LOG_NOTICE,
- "Rollback occured on component mask: 0x%02x",
+ "Rollback occurred on component mask: 0x%02x",
pCtx->resp.rollbackComp.ComponentBits.byte);
} else {
lprintf(LOG_NOTICE,
- "No Firmware rollback occured");
+ "No Firmware rollback occurred");
}
} else if (rsp->ccode == 0x81) {
lprintf(LOG_ERR,
diff --git a/lib/ipmi_ime.c b/lib/ipmi_ime.c
index f8e8c09..6bdca3b 100755
--- a/lib/ipmi_ime.c
+++ b/lib/ipmi_ime.c
@@ -430,11 +430,9 @@ static int ImeUpgrade(struct ipmi_intf *intf, char* imageFilename)
if(currentPercent != shownPercent)
{
- uint16_t timeElapsedSecond;
shownPercent = currentPercent;
printf("Percent: %02i, ", shownPercent);
time(&current);
- timeElapsedSecond = (current-start) + ((current-start)%60);
printf("Elapsed time %02ld:%02ld\r",((current-start)/60), ((current-start)%60));
fflush(stdout);
diff --git a/lib/ipmi_isol.c b/lib/ipmi_isol.c
index 84d7db8..bc0b08b 100644
--- a/lib/ipmi_isol.c
+++ b/lib/ipmi_isol.c
@@ -29,6 +29,7 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _XOPEN_SOURCE
#include <stdlib.h>
#include <string.h>
diff --git a/lib/ipmi_main.c b/lib/ipmi_main.c
index a752b59..e6f96f6 100644
--- a/lib/ipmi_main.c
+++ b/lib/ipmi_main.c
@@ -30,6 +30,10 @@
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
#define _XOPEN_SOURCE 700
+#define _BSD_SOURCE || \
+ (_XOPEN_SOURCE >= 500 || \
+ _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && \
+ !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
#include <stdlib.h>
#include <stdio.h>
@@ -69,6 +73,8 @@
#include <ipmitool/ipmi_oem.h>
#include <ipmitool/ipmi_ekanalyzer.h>
#include <ipmitool/ipmi_picmg.h>
+#include <ipmitool/ipmi_kontronoem.h>
+#include <ipmitool/ipmi_vita.h>
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -80,6 +86,10 @@
# define OPTION_STRING "I:46hVvcH:f:U:p:d:S:D:"
#endif
+/* From src/plugins/ipmi_intf.c: */
+void
+ipmi_intf_set_max_request_data_size(struct ipmi_intf * intf, uint16_t size);
+
extern int verbose;
extern int csv_output;
extern const struct valstr ipmi_privlvl_vals[];
@@ -332,7 +342,7 @@ ipmi_parse_hex(const char *str)
else /* it's A-F or a-f */
b = (*p | 0x20) - 'a' + 10; /* convert to lowercase and to 10-15 */
- *q = *q + b << shift;
+ *q = *q + (b << shift);
if (shift)
shift = 0;
else {
diff --git a/lib/ipmi_mc.c b/lib/ipmi_mc.c
index a93134e..5b4a080 100644
--- a/lib/ipmi_mc.c
+++ b/lib/ipmi_mc.c
@@ -779,7 +779,7 @@ ipmi_mc_rst_watchdog(struct ipmi_intf * intf)
if (rsp->ccode) {
lprintf(LOG_ERR, "Reset Watchdog Timer command failed: %s",
(rsp->ccode == IPM_WATCHDOG_RESET_ERROR) ?
- "Attempt to reset unitialized watchdog" :
+ "Attempt to reset uninitialized watchdog" :
val2str(rsp->ccode, completion_code_vals));
return -1;
}
diff --git a/lib/ipmi_pef.c b/lib/ipmi_pef.c
index 1beebf0..22f29e4 100644
--- a/lib/ipmi_pef.c
+++ b/lib/ipmi_pef.c
@@ -267,7 +267,7 @@ ipmi_pef_print_lan_dest(struct ipmi_intf * intf, uint8_t ch, uint8_t dest)
struct pef_lan_cfgparm_dest_type * ptype;
struct pef_lan_cfgparm_dest_info * pinfo;
char buf[32];
- uint8_t tbl_size, dsttype, timeout, retries;
+ uint8_t dsttype, timeout, retries;
memset(&lsel, 0, sizeof(lsel));
lsel.id = PEF_LAN_CFGPARM_ID_DEST_COUNT;
@@ -283,9 +283,6 @@ ipmi_pef_print_lan_dest(struct ipmi_intf * intf, uint8_t ch, uint8_t dest)
"Alert destination count");
return;
}
- tbl_size = (rsp->data[1] & PEF_LAN_DEST_TABLE_SIZE_MASK);
- //if (tbl_size == 0 || dest == 0) /* LAN alerting not supported */
- // return;
lsel.id = PEF_LAN_CFGPARM_ID_DESTTYPE;
lsel.set = dest;
diff --git a/lib/ipmi_picmg.c b/lib/ipmi_picmg.c
index f47577e..70f845d 100644
--- a/lib/ipmi_picmg.c
+++ b/lib/ipmi_picmg.c
@@ -1280,49 +1280,53 @@ ipmi_picmg_get_led_state(struct ipmi_intf * intf, int argc, char ** argv)
}
printf("LED states: %x ", rsp->data[1] );
- if (rsp->data[1] == 0x1)
- printf("[LOCAL CONTROL]\n");
- else if (rsp->data[1] == 0x2)
- printf("[OVERRIDE]\n");
- else if (rsp->data[1] == 0x4)
- printf("[LAMPTEST]\n");
- else
- printf("\n");
+
+ if (!(rsp->data[1] & 0x1)) {
+ printf("[NO LOCAL CONTROL]\n");
+ return 0;
+ }
+
+ printf("[LOCAL CONTROL");
+
+ if (rsp->data[1] & 0x2) {
+ printf("|OVERRIDE");
+ }
+
+ if (rsp->data[1] & 0x4) {
+ printf("|LAMPTEST");
+ }
+
+ printf("]\n");
printf(" Local Control function: %x ", rsp->data[2] );
- if (rsp->data[2] == 0x0)
+ if (rsp->data[2] == 0x0) {
printf("[OFF]\n");
- else if (rsp->data[2] == 0xff)
+ } else if (rsp->data[2] == 0xff) {
printf("[ON]\n");
- else
+ } else {
printf("[BLINKING]\n");
+ }
printf(" Local Control On-Duration: %x\n", rsp->data[3] );
printf(" Local Control Color: %x [%s]\n", rsp->data[4], led_color_str[ rsp->data[4] ]);
/* override state or lamp test */
- if (rsp->data[1] == 0x02) {
+ if (rsp->data[1] & 0x02) {
printf(" Override function: %x ", rsp->data[5] );
- if (rsp->data[2] == 0x0)
+ if (rsp->data[2] == 0x0) {
printf("[OFF]\n");
- else if (rsp->data[2] == 0xff)
+ } else if (rsp->data[2] == 0xff) {
printf("[ON]\n");
- else
+ } else {
printf("[BLINKING]\n");
+ }
printf(" Override On-Duration: %x\n", rsp->data[6] );
printf(" Override Color: %x [%s]\n", rsp->data[7], led_color_str[ rsp->data[7] ]);
- }else if (rsp->data[1] == 0x06) {
- printf(" Override function: %x ", rsp->data[5] );
- if (rsp->data[2] == 0x0)
- printf("[OFF]\n");
- else if (rsp->data[2] == 0xff)
- printf("[ON]\n");
- else
- printf("[BLINKING]\n");
- printf(" Override On-Duration: %x\n", rsp->data[6] );
- printf(" Override Color: %x [%s]\n", rsp->data[7], led_color_str[ rsp->data[7] ]);
+ }
+
+ if (rsp->data[1] & 0x04) {
printf(" Lamp test duration: %x\n", rsp->data[8] );
}
diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c
index 292a7d3..e3122dc 100644
--- a/lib/ipmi_sdr.c
+++ b/lib/ipmi_sdr.c
@@ -32,6 +32,7 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _BSD_SOURCE
#include <string.h>
@@ -69,6 +70,10 @@ static struct ipmi_sdr_iterator *sdr_list_itr = NULL;
void printf_sdr_usage();
+/* From src/plugins/ipmi_intf.c: */
+uint16_t
+ipmi_intf_get_max_response_data_size(struct ipmi_intf * intf);
+
/* ipmi_sdr_get_unit_string - return units for base/modifier
*
* @pct: units are a percentage
@@ -864,9 +869,11 @@ ipmi_sdr_get_header(struct ipmi_intf *intf, struct ipmi_sdr_iterator *itr)
* situation, we cheat and put the original record id back in.
* Otherwise, a later Get SDR Record command will fail with
* completion code CBh = "Requested Sensor, data, or record
- * not present"
+ * not present". Exception is if 'Record ID' is specified as 0000h.
+ * For further information see IPMI v2.0 Spec, Section 33.12
*/
- if (sdr_rs.id != itr->next) {
+ if ((itr->next != 0x0000) &&
+ (sdr_rs.id != itr->next)) {
lprintf(LOG_DEBUG, "SDR record id mismatch: 0x%04x", sdr_rs.id);
sdr_rs.id = itr->next;
}
diff --git a/lib/ipmi_sdradd.c b/lib/ipmi_sdradd.c
index f5bf78a..52848a3 100644
--- a/lib/ipmi_sdradd.c
+++ b/lib/ipmi_sdradd.c
@@ -38,6 +38,7 @@
#include <stdio.h>
#include <time.h>
#include <fcntl.h>
+#include <unistd.h>
#include <ipmitool/helper.h>
#include <ipmitool/log.h>
diff --git a/lib/ipmi_sel.c b/lib/ipmi_sel.c
index 5df66a7..b6629a2 100644
--- a/lib/ipmi_sel.c
+++ b/lib/ipmi_sel.c
@@ -29,8 +29,10 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _BSD_SOURCE
#include <string.h>
+#include <strings.h>
#include <math.h>
#define __USE_XOPEN /* glibc2 needs this for strptime */
#include <time.h>
@@ -43,6 +45,7 @@
#include <ipmitool/ipmi_mc.h>
#include <ipmitool/ipmi_intf.h>
#include <ipmitool/ipmi_sel.h>
+#include <ipmitool/ipmi_sel_supermicro.h>
#include <ipmitool/ipmi_sdr.h>
#include <ipmitool/ipmi_fru.h>
#include <ipmitool/ipmi_sensor.h>
@@ -419,7 +422,12 @@ ipmi_sel_add_entries_fromfile(struct ipmi_intf * intf, const char * filename)
memset(&sel_event, 0, sizeof(struct sel_event_record));
sel_event.record_id = 0x0000;
sel_event.record_type = 0x02;
- sel_event.sel_type.standard_type.gen_id = 0x00;
+ /*
+ * IPMI spec §32.1 generator ID
+ * Bit 0 = 1 "Software defined"
+ * Bit 1-7: SWID (IPMI spec §5.5), using 2 = "System management software"
+ */
+ sel_event.sel_type.standard_type.gen_id = 0x41;
sel_event.sel_type.standard_type.evm_rev = rqdata[0];
sel_event.sel_type.standard_type.sensor_type = rqdata[1];
sel_event.sel_type.standard_type.sensor_num = rqdata[2];
@@ -1461,11 +1469,14 @@ ipmi_sel_get_info(struct ipmi_intf * intf)
if (rsp == NULL) {
lprintf(LOG_ERR, "Get SEL Info command failed");
return -1;
- }
- if (rsp->ccode > 0) {
+ } else if (rsp->ccode > 0) {
lprintf(LOG_ERR, "Get SEL Info command failed: %s",
val2str(rsp->ccode, completion_code_vals));
return -1;
+ } else if (rsp->data_len != 14) {
+ lprintf(LOG_ERR, "Get SEL Info command failed: "
+ "Invalid data length %d", rsp->data_len);
+ return (-1);
}
if (verbose > 2)
printbuf(rsp->data, rsp->data_len, "sel_info");
@@ -2731,24 +2742,26 @@ ipmi_sel_set_time(struct ipmi_intf * intf, const char * time_string)
{
//modify UTC time to local time expressed in number of seconds from 1/1/70 0:0:0 1970 GMT
struct tm * tm_tmp = {0};
- int gt_year,gt_yday,gt_hour,lt_year,lt_yday,lt_hour;
+ int gt_year,gt_yday,gt_hour,gt_min,lt_year,lt_yday,lt_hour,lt_min;
int delta_hour;
tm_tmp=gmtime(&t);
gt_year=tm_tmp->tm_year;
gt_yday=tm_tmp->tm_yday;
gt_hour=tm_tmp->tm_hour;
+ gt_min=tm_tmp->tm_min;
memset(&*tm_tmp, 0, sizeof(struct tm));
tm_tmp=localtime(&t);
lt_year=tm_tmp->tm_year;
lt_yday=tm_tmp->tm_yday;
lt_hour=tm_tmp->tm_hour;
+ lt_min=tm_tmp->tm_min;
delta_hour=lt_hour - gt_hour;
if ( (lt_year > gt_year) || ((lt_year == gt_year) && (lt_yday > gt_yday)) )
delta_hour += 24;
if ( (lt_year < gt_year) || ((lt_year == gt_year) && (lt_yday < gt_yday)) )
delta_hour -= 24;
- t += (delta_hour * 60 * 60);
+ t += (delta_hour * 60 * 60) + (lt_min - gt_min) * 60;
}
timei = (uint32_t)t;
diff --git a/lib/ipmi_sol.c b/lib/ipmi_sol.c
index 5415ea7..333ce90 100644
--- a/lib/ipmi_sol.c
+++ b/lib/ipmi_sol.c
@@ -29,6 +29,11 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _XOPEN_SOURCE
+#define _BSD_SOURCE || \
+ (_XOPEN_SOURCE >= 500 || \
+ _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && \
+ !(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700)
#include <stdlib.h>
#include <string.h>
@@ -92,7 +97,6 @@ static struct termios _saved_tio;
static int _in_raw_mode = 0;
static int _disable_keepalive = 0;
static int _use_sol_for_keepalive = 0;
-static int _keepalive_retries = 0;
extern int verbose;
diff --git a/lib/ipmi_strings.c b/lib/ipmi_strings.c
index 4a1ff46..7fefee9 100644
--- a/lib/ipmi_strings.c
+++ b/lib/ipmi_strings.c
@@ -64,13 +64,37 @@ const struct valstr ipmi_oem_info[] = {
{ IPMI_OEM_TOSHIBA, "Toshiba" },
{ IPMI_OEM_HITACHI_116, "Hitachi" },
{ IPMI_OEM_HITACHI_399, "Hitachi" },
- { IPMI_OEM_NOKIA_SIEMENS_NETWORKS, "Nokia Siemens Networks" },
+ { IPMI_OEM_NOKIA_SOLUTIONS_AND_NETWORKS, "Nokia Solutions and Networks (formerly 'Nokia Siemens Networks')" },
{ IPMI_OEM_BULL, "Bull Company" },
{ IPMI_OEM_PPS, "Pigeon Point Systems" },
{ IPMI_OEM_BROADCOM, "Broadcom Corporation" },
{ IPMI_OEM_ERICSSON, "Ericsson AB"},
{ IPMI_OEM_QUANTA, "Quanta" },
{ IPMI_OEM_ADVANTECH, "Advantech" },
+ /************************************************************************
+ * Add ID String for IANA Enterprise Number of IBM & ADLINK
+ * https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers
+ * 2
+ * IBM
+ * Kristine Adamson
+ * adamson&us.ibm.com
+ * 4769
+ * IBM Corporation
+ * Victor Sample
+ * vsample&us.ibm.com
+ * 20301
+ * IBM eServer X
+ * Lynn Fore
+ * sls&us.ibm.com
+ * 24339
+ * ADLINK TECHNOLOGY INC.
+ * Ryan Hsu
+ * ryan.hsu&adlinktech.com
+ ************************************************************************/
+ { IPMI_OEM_IBM_2, "IBM" },
+ { IPMI_OEM_IBM_4769, "IBM Corporation" },
+ { IPMI_OEM_IBM_20301, "IBM eServer X" },
+ { IPMI_OEM_ADLINK_24339, "ADLINK Technology Inc." },
{ 0xffff , NULL },
};
@@ -202,6 +226,62 @@ const struct oemvalstr ipmi_oem_product_info[] = {
{ IPMI_OEM_ADVANTECH, 0x9212, "ESP-9212" },
{ IPMI_OEM_ADVANTECH, 0x6000, "CGS-6000" },
{ IPMI_OEM_ADVANTECH, 0x6010, "CGS-6010" },
+ /* ADLINK Technology Inc. */
+ /* AdvancedTCA Processor Blades */
+ { IPMI_OEM_ADLINK_24339, 0x3100, "aTCA-3100" },
+ { IPMI_OEM_ADLINK_24339, 0x3110, "aTCA-3110" },
+ { IPMI_OEM_ADLINK_24339, 0x3150, "aTCA-3150" },
+ { IPMI_OEM_ADLINK_24339, 0x3420, "aTCA-3420" },
+ { IPMI_OEM_ADLINK_24339, 0x3710, "aTCA-3710" },
+ { IPMI_OEM_ADLINK_24339, 0x6100, "aTCA-6100" },
+ { IPMI_OEM_ADLINK_24339, 0x6200, "aTCA-6200" },
+ { IPMI_OEM_ADLINK_24339, 0x6250, "aTCA-6250/6250STW" },
+ { IPMI_OEM_ADLINK_24339, 0x6270, "aTCA-R6270" },
+ { IPMI_OEM_ADLINK_24339, 0x6280, "aTCA-R6280" },
+ { IPMI_OEM_ADLINK_24339, 0x6890, "aTCA-6890" },
+ { IPMI_OEM_ADLINK_24339, 0x6891, "aTCA-6891" },
+ { IPMI_OEM_ADLINK_24339, 0x6900, "aTCA-6900" },
+ { IPMI_OEM_ADLINK_24339, 0x6905, "aTCA-R6905" },
+ { IPMI_OEM_ADLINK_24339, 0x690A, "aTCA-R6900" },
+ { IPMI_OEM_ADLINK_24339, 0x8214, "aTCA-8214" },
+ { IPMI_OEM_ADLINK_24339, 0x8606, "aTCA-8606" },
+ { IPMI_OEM_ADLINK_24339, 0x9300, "aTCA-9300" },
+ { IPMI_OEM_ADLINK_24339, 0x9700, "aTCA-9700" },
+ { IPMI_OEM_ADLINK_24339, 0x9700, "aTCA-R9700" },
+ { IPMI_OEM_ADLINK_24339, 0x970D, "aTCA-9700D" },
+ { IPMI_OEM_ADLINK_24339, 0x9710, "aTCA-9710" },
+ { IPMI_OEM_ADLINK_24339, 0x9710, "aTCA-R9710" },
+ { IPMI_OEM_ADLINK_24339, 0xF001, "aTCA-FN001" },
+ { IPMI_OEM_ADLINK_24339, 0xF2A0, "aTCA-F2AX" },
+ { IPMI_OEM_ADLINK_24339, 0xF5A0, "aTCA-F5AX" },
+ /* CompactPCI Blades */
+ { IPMI_OEM_ADLINK_24339, 0x3510, "cPCI-3510" },
+ { IPMI_OEM_ADLINK_24339, 0x3970, "cPCI-3970" },
+ { IPMI_OEM_ADLINK_24339, 0x6010, "cPCI-6010" },
+ { IPMI_OEM_ADLINK_24339, 0x6210, "cPCI-6210" },
+ { IPMI_OEM_ADLINK_24339, 0x6510, "cPCI-6510" },
+ { IPMI_OEM_ADLINK_24339, 0x6520, "cPCI-6520" },
+ { IPMI_OEM_ADLINK_24339, 0x6525, "cPCI-6525" },
+ { IPMI_OEM_ADLINK_24339, 0x6530, "cPCI-6530/6530BL" },
+ { IPMI_OEM_ADLINK_24339, 0x6600, "cPCI-6600" },
+ { IPMI_OEM_ADLINK_24339, 0x6840, "cPCI-6840" },
+ { IPMI_OEM_ADLINK_24339, 0x6870, "cPCI-6870" },
+ { IPMI_OEM_ADLINK_24339, 0x6880, "cPCI-6880" },
+ { IPMI_OEM_ADLINK_24339, 0x6910, "cPCI-6910" },
+ { IPMI_OEM_ADLINK_24339, 0x6920, "cPCI-6920" },
+ { IPMI_OEM_ADLINK_24339, 0x6930, "cPCI-6930" },
+ { IPMI_OEM_ADLINK_24339, 0x6940, "cPCI-6940" },
+ /* VPX Blades */
+ { IPMI_OEM_ADLINK_24339, 0x3000, "VPX3000" },
+ { IPMI_OEM_ADLINK_24339, 0x3001, "VPX3001" },
+ { IPMI_OEM_ADLINK_24339, 0x3002, "VPX3002" },
+ { IPMI_OEM_ADLINK_24339, 0x3010, "VPX3010" },
+ { IPMI_OEM_ADLINK_24339, 0x3F10, "VPX3G10" },
+ { IPMI_OEM_ADLINK_24339, 0x6000, "VPX6000" },
+ /* Network Appliance */
+ { IPMI_OEM_ADLINK_24339, 0x0410, "MXN-0410" },
+ { IPMI_OEM_ADLINK_24339, 0x2600, "MCN-2600" },
+ { IPMI_OEM_ADLINK_24339, 0x1500, "MCN-1500" },
{ 0xffffff , 0xffff , NULL },
};
diff --git a/lib/ipmi_sunoem.c b/lib/ipmi_sunoem.c
index 7f7a58b..e4fae65 100644
--- a/lib/ipmi_sunoem.c
+++ b/lib/ipmi_sunoem.c
@@ -29,14 +29,13 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _XOPEN_SOURCE
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <strings.h>
-#include <sys/types.h>
#include <sys/socket.h>
-#include <sys/time.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
@@ -47,6 +46,7 @@
#include <sys/time.h>
#include <limits.h>
#include <fcntl.h>
+#include <sys/select.h>
#include <termios.h>
@@ -469,7 +469,7 @@ ipmi_sunoem_led_get(struct ipmi_intf * intf, int argc, char ** argv)
ledtype = str2val(argv[1], sunoem_led_type_vals);
if (ledtype == 0xFF)
lprintf(LOG_ERR,
- "Unknow ledtype, will use data from the SDR oem field");
+ "Unknown ledtype, will use data from the SDR oem field");
}
if (strncasecmp(argv[0], "all", 3) == 0) {
@@ -676,7 +676,7 @@ ipmi_sunoem_led_set(struct ipmi_intf * intf, int argc, char ** argv)
ledtype = str2val(argv[2], sunoem_led_type_vals);
if (ledtype == 0xFF)
lprintf(LOG_ERR,
- "Unknow ledtype, will use data from the SDR oem field");
+ "Unknown ledtype, will use data from the SDR oem field");
}
if (strncasecmp(argv[0], "all", 3) == 0) {
diff --git a/lib/ipmi_tsol.c b/lib/ipmi_tsol.c
index 70d7357..d89bcfd 100644
--- a/lib/ipmi_tsol.c
+++ b/lib/ipmi_tsol.c
@@ -33,7 +33,7 @@
#include <sys/types.h>
#include <sys/stat.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
diff --git a/lib/ipmi_user.c b/lib/ipmi_user.c
index 6074209..2780e61 100644
--- a/lib/ipmi_user.c
+++ b/lib/ipmi_user.c
@@ -29,6 +29,10 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _BSD_SOURCE || \
+ (_XOPEN_SOURCE >= 500 || \
+ _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && \
+ !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
#include <stdlib.h>
#include <string.h>
@@ -590,7 +594,7 @@ ipmi_user_priv(struct ipmi_intf *intf, int argc, char **argv)
user_access.user_id);
return (-1);
} else {
- printf("Set Privilege Level command successful (user %d)",
+ printf("Set Privilege Level command successful (user %d)\n",
user_access.user_id);
return 0;
}
@@ -602,6 +606,7 @@ ipmi_user_mod(struct ipmi_intf *intf, int argc, char **argv)
/* Disable / Enable */
uint8_t user_id;
uint8_t operation;
+ uint8_t ccode;
if (argc != 2) {
print_user_usage();
@@ -613,8 +618,14 @@ ipmi_user_mod(struct ipmi_intf *intf, int argc, char **argv)
operation = (strncmp(argv[0], "disable", 7) == 0) ?
IPMI_PASSWORD_DISABLE_USER : IPMI_PASSWORD_ENABLE_USER;
- return _ipmi_set_user_password(intf, user_id, operation,
+ ccode = _ipmi_set_user_password(intf, user_id, operation,
(char *)NULL, 0);
+ if (eval_ccode(ccode) != 0) {
+ lprintf(LOG_ERR, "Set User Password command failed (user %d)",
+ user_id);
+ return (-1);
+ }
+ return 0;
}
int
diff --git a/lib/log.c b/lib/log.c
index bc80542..2738e18 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -29,6 +29,9 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 || \
+ _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED || \
+ /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
#include <unistd.h>
#include <stdio.h>
@@ -96,7 +99,7 @@ void lperror(int level, const char * format, ...)
return;
}
-/*
+/*
* open connection to syslog if daemon
*/
void log_init(const char * name, int isdaemon, int verbose)
@@ -115,7 +118,7 @@ void log_init(const char * name, int isdaemon, int verbose)
if (logpriv->name == NULL)
fprintf(stderr, "ipmitool: malloc failure\n");
-
+
logpriv->daemon = isdaemon;
logpriv->level = verbose + LOG_NOTICE;
diff --git a/ltmain.sh b/ltmain.sh
index a356aca..bffda54 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -70,7 +70,7 @@
# compiler: $LTCC
# compiler flags: $LTCFLAGS
# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1
+# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.11
# automake: $automake_version
# autoconf: $autoconf_version
#
@@ -80,7 +80,7 @@
PROGRAM=libtool
PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1"
+VERSION="2.4.2 Debian-2.4.2-1.11"
TIMESTAMP=""
package_revision=1.3337
diff --git a/src/Makefile.am b/src/Makefile.am
index ba388d3..cedf63d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -28,7 +28,7 @@
# LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
# EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
SUBDIRS = plugins
MAINTAINERCLEANFILES = Makefile.in
diff --git a/src/Makefile.in b/src/Makefile.in
index 06b33a8..07e255d 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -387,7 +387,7 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
SUBDIRS = plugins
MAINTAINERCLEANFILES = Makefile.in
ipmitool_SOURCES = ipmitool.c ipmishell.c
diff --git a/src/ipmievd.c b/src/ipmievd.c
index cc1ca0f..caefd95 100644
--- a/src/ipmievd.c
+++ b/src/ipmievd.c
@@ -30,6 +30,7 @@
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
#define _XOPEN_SOURCE 700
+#define _BSD_SOURCE
#include <stdio.h>
#include <fcntl.h>
@@ -70,7 +71,7 @@
# else
# include "plugins/open/open.h"
# endif
-# include <sys/poll.h>
+# include <poll.h>
#endif /* IPMI_INTF_OPEN */
#include <ipmitool/helper.h>
diff --git a/src/ipmishell.c b/src/ipmishell.c
index 6cfcbe8..205cbf9 100644
--- a/src/ipmishell.c
+++ b/src/ipmishell.c
@@ -29,6 +29,9 @@
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
+#define _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 || \
+ _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED || \
+ /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
#include <stdio.h>
#include <unistd.h>
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
index a2c48ff..7ad8173 100644
--- a/src/plugins/Makefile.am
+++ b/src/plugins/Makefile.am
@@ -30,7 +30,7 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
SUBDIRS = @INTF_LAN@ @INTF_LANPLUS@ @INTF_OPEN@ @INTF_LIPMI@ @INTF_IMB@ @INTF_BMC@ @INTF_FREE@ @INTF_SERIAL@ @INTF_DUMMY@ @INTF_USB@
DIST_SUBDIRS = lan lanplus open lipmi imb bmc free serial dummy usb
diff --git a/src/plugins/Makefile.in b/src/plugins/Makefile.in
index f38697a..262ff90 100644
--- a/src/plugins/Makefile.in
+++ b/src/plugins/Makefile.in
@@ -381,7 +381,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
SUBDIRS = @INTF_LAN@ @INTF_LANPLUS@ @INTF_OPEN@ @INTF_LIPMI@ @INTF_IMB@ @INTF_BMC@ @INTF_FREE@ @INTF_SERIAL@ @INTF_DUMMY@ @INTF_USB@
DIST_SUBDIRS = lan lanplus open lipmi imb bmc free serial dummy usb
noinst_LTLIBRARIES = libintf.la
diff --git a/src/plugins/bmc/Makefile.am b/src/plugins/bmc/Makefile.am
index 66080d6..f9374fe 100644
--- a/src/plugins/bmc/Makefile.am
+++ b/src/plugins/bmc/Makefile.am
@@ -30,7 +30,7 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_bmc.la
noinst_LTLIBRARIES = @INTF_BMC_LIB@
diff --git a/src/plugins/bmc/Makefile.in b/src/plugins/bmc/Makefile.in
index 6ed1ee7..3cb831b 100644
--- a/src/plugins/bmc/Makefile.in
+++ b/src/plugins/bmc/Makefile.in
@@ -338,7 +338,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_bmc.la
noinst_LTLIBRARIES = @INTF_BMC_LIB@
libintf_bmc_la_LIBADD = $(top_builddir)/lib/libipmitool.la
diff --git a/src/plugins/dummy/Makefile.am b/src/plugins/dummy/Makefile.am
index 8a53bbe..bbc8048 100644
--- a/src/plugins/dummy/Makefile.am
+++ b/src/plugins/dummy/Makefile.am
@@ -1,8 +1,8 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_dummy.la
noinst_LTLIBRARIES = @INTF_DUMMY_LIB@
libintf_dummy_la_LIBADD = $(top_builddir)/lib/libipmitool.la
-libintf_dummy_la_SOURCES = dummy.c
+libintf_dummy_la_SOURCES = dummy.c dummy.h
diff --git a/src/plugins/dummy/Makefile.in b/src/plugins/dummy/Makefile.in
index 86475ba..1850430 100644
--- a/src/plugins/dummy/Makefile.in
+++ b/src/plugins/dummy/Makefile.in
@@ -308,11 +308,11 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_dummy.la
noinst_LTLIBRARIES = @INTF_DUMMY_LIB@
libintf_dummy_la_LIBADD = $(top_builddir)/lib/libipmitool.la
-libintf_dummy_la_SOURCES = dummy.c
+libintf_dummy_la_SOURCES = dummy.c dummy.h
all: all-am
.SUFFIXES:
diff --git a/src/plugins/dummy/dummy.c b/src/plugins/dummy/dummy.c
index 8bfc4cf..8600a84 100644
--- a/src/plugins/dummy/dummy.c
+++ b/src/plugins/dummy/dummy.c
@@ -31,6 +31,7 @@
#include <errno.h>
#include <limits.h>
#include <stdio.h>
+#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/un.h>
@@ -175,6 +176,14 @@ ipmi_dummyipmi_open(struct ipmi_intf *intf)
struct sockaddr_un address;
int len;
int rc;
+ char *dummy_sock_path;
+
+ dummy_sock_path = getenv("IPMI_DUMMY_SOCK");
+ if (dummy_sock_path == NULL) {
+ lprintf(LOG_DEBUG, "No IPMI_DUMMY_SOCK set. Dummy mode ON.");
+ intf->opened = 1;
+ return intf->fd;
+ }
if (intf->opened == 1) {
return intf->fd;
@@ -185,7 +194,7 @@ ipmi_dummyipmi_open(struct ipmi_intf *intf)
return (-1);
}
address.sun_family = AF_UNIX;
- strcpy(address.sun_path, DUMMY_SOCKET_PATH);
+ strcpy(address.sun_path, dummy_sock_path);
len = sizeof(address);
rc = connect(intf->fd, (struct sockaddr *)&address, len);
if (rc != 0) {
@@ -209,6 +218,12 @@ ipmi_dummyipmi_send_cmd(struct ipmi_intf *intf, struct ipmi_rq *req)
static struct ipmi_rs rsp;
struct dummy_rq req_dummy;
struct dummy_rs rsp_dummy;
+ char *dummy_sock_path;
+ dummy_sock_path = getenv("IPMI_DUMMY_SOCK");
+ if (dummy_sock_path == NULL) {
+ lprintf(LOG_DEBUG, "No IPMI_DUMMY_SOCK set. Dummy mode ON.");
+ return NULL;
+ }
if (intf == NULL || intf->fd < 0 || intf->opened != 1) {
lprintf(LOG_ERR, "dummy failed on intf check.");
return NULL;
diff --git a/src/plugins/dummy/dummy.h b/src/plugins/dummy/dummy.h
new file mode 100644
index 0000000..bbe3aa3
--- /dev/null
+++ b/src/plugins/dummy/dummy.h
@@ -0,0 +1,28 @@
+#ifndef IPMI_DUMMYIPMI_H
+# define IPMI_DUMMYIPMI_H
+
+struct dummy_rq {
+ struct {
+ uint8_t netfn;
+ uint8_t lun;
+ uint8_t cmd;
+ uint8_t target_cmd;
+ uint16_t data_len;
+ uint8_t *data;
+ } msg;
+};
+
+struct dummy_rs {
+ struct {
+ uint8_t netfn;
+ uint8_t cmd;
+ uint8_t seq;
+ uint8_t lun;
+ } msg;
+
+ uint8_t ccode;
+ int data_len;
+ uint8_t *data;
+};
+
+#endif
diff --git a/src/plugins/free/Makefile.am b/src/plugins/free/Makefile.am
index 028281f..7a3a84e 100644
--- a/src/plugins/free/Makefile.am
+++ b/src/plugins/free/Makefile.am
@@ -1,6 +1,6 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_free.la
noinst_LTLIBRARIES = @INTF_FREE_LIB@
diff --git a/src/plugins/free/Makefile.in b/src/plugins/free/Makefile.in
index d8eb9e6..cc33b93 100644
--- a/src/plugins/free/Makefile.in
+++ b/src/plugins/free/Makefile.in
@@ -312,7 +312,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_free.la
noinst_LTLIBRARIES = @INTF_FREE_LIB@
libintf_free_la_LIBADD = $(top_builddir)/lib/libipmitool.la
diff --git a/src/plugins/imb/Makefile.am b/src/plugins/imb/Makefile.am
index 91d5966..6f1b68c 100644
--- a/src/plugins/imb/Makefile.am
+++ b/src/plugins/imb/Makefile.am
@@ -30,7 +30,7 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_imb.la
noinst_LTLIBRARIES = @INTF_IMB_LIB@
diff --git a/src/plugins/imb/Makefile.in b/src/plugins/imb/Makefile.in
index d1ded78..1e40e15 100644
--- a/src/plugins/imb/Makefile.in
+++ b/src/plugins/imb/Makefile.in
@@ -338,7 +338,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_imb.la
noinst_LTLIBRARIES = @INTF_IMB_LIB@
libintf_imb_la_LIBADD = $(top_builddir)/lib/libipmitool.la
diff --git a/src/plugins/imb/imb.c b/src/plugins/imb/imb.c
index 0044159..1514fa7 100644
--- a/src/plugins/imb/imb.c
+++ b/src/plugins/imb/imb.c
@@ -43,6 +43,7 @@
#include <ipmitool/ipmi.h>
#include <ipmitool/ipmi_intf.h>
#include <ipmitool/helper.h>
+#include <ipmitool/ipmi_sel.h>
#include "imbapi.h"
diff --git a/src/plugins/imb/imbapi.c b/src/plugins/imb/imbapi.c
index 899c47a..84eec2e 100644
--- a/src/plugins/imb/imbapi.c
+++ b/src/plugins/imb/imbapi.c
@@ -97,7 +97,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <string.h>
#endif
#include "imbapi.h"
-#include <asm/socket.h>
+#include <sys/socket.h>
#ifdef SCO_UW
#define NO_MACRO_ARGS 1
@@ -105,9 +105,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define IMB_DEVICE "/dev/instru/mismic"
#else
#define IMB_DEVICE "/dev/imb"
-#ifndef PAGESIZE
-# define PAGESIZE EXEC_PAGESIZE
#endif
+
+#if !defined(PAGESIZE) && defined(PAGE_SIZE)
+# define PAGESIZE PAGE_SIZE
+#endif
+
+#if !defined(_SC_PAGESIZE) && defined(_SC_PAGE_SIZE)
+# define _SC_PAGESIZE _SC_PAGE_SIZE
#endif
/*Just to make the DEBUG code cleaner.*/
@@ -545,7 +550,7 @@ SendTimedI2cRequest (
if( status != TRUE ) {
DWORD error;
error = GetLastError();
- return ACCESN_ERROR;
+ return error;
}
if( respLength == 0 ) {
return ACCESN_ERROR;
@@ -1134,7 +1139,7 @@ SendTimedImbpRequest (
if( status != TRUE ) {
DWORD error;
error = GetLastError();
- return ACCESN_ERROR;
+ return error;
}
if( respLength == 0 ) {
return ACCESN_ERROR;
@@ -1211,7 +1216,7 @@ SendAsyncImbpRequest (
if( status != TRUE ) {
DWORD error;
error = GetLastError();
- return ACCESN_ERROR;
+ return error;
}
if( respLength != 2 ) {
return ACCESN_ERROR;
@@ -1985,6 +1990,16 @@ MapPhysicalMemory(int startAddress,int addressLength, int *virtualAddress )
off_t startpAddress = (off_t)startAddress;
unsigned int diff;
char *startvAddress;
+#if defined(PAGESIZE)
+ long int pagesize = PAGESIZE;
+#elif defined(_SC_PAGESIZE)
+ long int pagesize = sysconf(_SC_PAGESIZE);
+ if (pagesize < 1) {
+ perror("Invalid pagesize");
+ }
+#else
+# error PAGESIZE unsupported
+#endif
if ((startAddress == 0) || (addressLength <= 0))
return ACCESN_ERROR;
@@ -1999,7 +2014,7 @@ MapPhysicalMemory(int startAddress,int addressLength, int *virtualAddress )
}
/* aliging the offset to a page boundary and adjusting the length */
- diff = (int)startpAddress % PAGESIZE;
+ diff = (int)startpAddress % pagesize;
startpAddress -= diff;
length += diff;
@@ -2043,9 +2058,19 @@ ACCESN_STATUS
UnmapPhysicalMemory( int virtualAddress, int Length )
{
unsigned int diff = 0;
+#if defined(PAGESIZE)
+ long int pagesize = PAGESIZE;
+#elif defined(_SC_PAGESIZE)
+ long int pagesize = sysconf(_SC_PAGESIZE);
+ if (pagesize < 1) {
+ perror("Invalid pagesize");
+ }
+#else
+# error PAGESIZE unsupported
+#endif
/* page align the virtual address and adjust length accordingly */
- diff = ((unsigned int) virtualAddress) % PAGESIZE;
+ diff = ((unsigned int) virtualAddress) % pagesize;
virtualAddress -= diff;
Length += diff;
#ifndef NO_MACRO_ARGS
diff --git a/src/plugins/imb/imbapi.h b/src/plugins/imb/imbapi.h
index 74975c6..6ba4121 100644
--- a/src/plugins/imb/imbapi.h
+++ b/src/plugins/imb/imbapi.h
@@ -46,10 +46,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#endif
#ifndef WIN32
/* WIN32 defines this in stdio.h */
-#ifndef _WCHAR_T
-#define _WCHAR_T
-typedef long wchar_t;
-#endif
+#include <wchar.h>
#endif
#define far
#define near
diff --git a/src/plugins/ipmi_intf.c b/src/plugins/ipmi_intf.c
index 19ba5e3..6cf0553 100644
--- a/src/plugins/ipmi_intf.c
+++ b/src/plugins/ipmi_intf.c
@@ -31,6 +31,7 @@
*/
#define _XOPEN_SOURCE 700
#define _GNU_SOURCE 1
+#define _DARWIN_C_SOURCE 1
#include <stdio.h>
#include <stdlib.h>
@@ -451,7 +452,7 @@ ipmi_intf_socket_connect(struct ipmi_intf * intf)
}
/* OK, now try to connect with the scope id from this interface address */
- if (addr6->sin6_scope_id != 0) {
+ if (addr6->sin6_scope_id != 0 || !IN6_IS_ADDR_LINKLOCAL(&tmp6->sin6_addr)) {
if (connect(intf->fd, rp->ai_addr, rp->ai_addrlen) != -1) {
hints.ai_family = rp->ai_family;
lprintf(LOG_DEBUG, "Successful connected on %s interface with scope id %d", ifa->ifa_name, tmp6->sin6_scope_id);
diff --git a/src/plugins/lan/Makefile.am b/src/plugins/lan/Makefile.am
index 70e320f..f276f38 100644
--- a/src/plugins/lan/Makefile.am
+++ b/src/plugins/lan/Makefile.am
@@ -30,7 +30,7 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_lan.la
noinst_LTLIBRARIES = @INTF_LAN_LIB@
diff --git a/src/plugins/lan/Makefile.in b/src/plugins/lan/Makefile.in
index 9d1ce80..2abda0d 100644
--- a/src/plugins/lan/Makefile.in
+++ b/src/plugins/lan/Makefile.in
@@ -338,7 +338,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_lan.la
noinst_LTLIBRARIES = @INTF_LAN_LIB@
libintf_lan_la_LIBADD = $(top_builddir)/lib/libipmitool.la
diff --git a/src/plugins/lan/lan.c b/src/plugins/lan/lan.c
index 14730d3..40ba233 100644
--- a/src/plugins/lan/lan.c
+++ b/src/plugins/lan/lan.c
@@ -970,7 +970,7 @@ ipmi_lan_send_cmd(struct ipmi_intf * intf, struct ipmi_rq * req)
// Example: We have to send command 23 and 2d.
// If we send command,seq as 23,10 and if we dont get any response it will
// retry 4 times with 23,10 and then come out here and indicate that there is no
- // reponse from the remote controller and will send the next command for
+ // response from the remote controller and will send the next command for
// ie 2d,11. And if the BMC is slow to respond and returns 23,10 then it
// will match it in the list and will take response of command 23 as response
// for command 2d and return success. So ideally when retries are done and
diff --git a/src/plugins/lanplus/Makefile.am b/src/plugins/lanplus/Makefile.am
index 428eb04..219440e 100644
--- a/src/plugins/lanplus/Makefile.am
+++ b/src/plugins/lanplus/Makefile.am
@@ -30,7 +30,7 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_lanplus.la
noinst_LTLIBRARIES = @INTF_LANPLUS_LIB@
diff --git a/src/plugins/lanplus/Makefile.in b/src/plugins/lanplus/Makefile.in
index eef233d..d24775b 100644
--- a/src/plugins/lanplus/Makefile.in
+++ b/src/plugins/lanplus/Makefile.in
@@ -339,7 +339,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_lanplus.la
noinst_LTLIBRARIES = @INTF_LANPLUS_LIB@
libintf_lanplus_la_LIBADD = $(top_builddir)/lib/libipmitool.la
diff --git a/src/plugins/lanplus/lanplus.c b/src/plugins/lanplus/lanplus.c
index 8776212..2a89a14 100644
--- a/src/plugins/lanplus/lanplus.c
+++ b/src/plugins/lanplus/lanplus.c
@@ -57,6 +57,7 @@
#include <ipmitool/ipmi_lanp.h>
#include <ipmitool/ipmi_channel.h>
#include <ipmitool/ipmi_intf.h>
+#include <ipmitool/ipmi_sel.h>
#include <ipmitool/ipmi_strings.h>
#include <ipmitool/hpm2.h>
#include <ipmitool/bswap.h>
@@ -606,7 +607,7 @@ ipmiv2_lan_ping(struct ipmi_intf * intf)
* Receive whatever comes back. Ignore received packets that don't correspond
* to a request we've sent.
*
- * Returns: the ipmi_rs packet describing the/a reponse we expect.
+ * Returns: the ipmi_rs packet describing the/a response we expect.
*/
static struct ipmi_rs *
ipmi_lan_poll_single(struct ipmi_intf * intf)
@@ -651,7 +652,7 @@ ipmi_lan_poll_single(struct ipmi_intf * intf)
*
* 1) An IPMI 1.5 packet (the response to our GET CHANNEL
* AUTHENTICATION CAPABILITIES request)
- * 2) An RMCP+ message with an IPMI reponse payload
+ * 2) An RMCP+ message with an IPMI response payload
* 3) AN RMCP+ open session response
* 4) An RAKP-2 message (response to an RAKP 1 message)
* 5) An RAKP-4 message (response to an RAKP 3 message)
@@ -662,6 +663,21 @@ ipmi_lan_poll_single(struct ipmi_intf * intf)
read_session_data(rsp, &offset, intf->session);
+ /*
+ * Skip packets that are not intended for this session
+ */
+ if ((session->v2_data.session_state == LANPLUS_STATE_ACTIVE) &&
+ (rsp->session.authtype == IPMI_SESSION_AUTHTYPE_RMCP_PLUS) &&
+ (rsp->session.id != intf->session->v2_data.console_id))
+ {
+ lprintf(LOG_INFO, "packet session id 0x%x does not "
+ "match active session 0x%0x",
+ rsp->session.id, intf->session->v2_data.console_id);
+ lprintf(LOG_ERR, "ERROR: Received an Unexpected message ID");
+ /* read one more packet */
+ return (struct ipmi_rs *)1;
+ }
+
if (lanplus_has_valid_auth_code(rsp, intf->session) == 0) {
lprintf(LOG_ERR, "ERROR: Received message with invalid authcode!");
return NULL;
@@ -681,7 +697,7 @@ ipmi_lan_poll_single(struct ipmi_intf * intf)
}
/*
- * Handle IPMI responses (case #1 and #2) -- all IPMI reponses
+ * Handle IPMI responses (case #1 and #2) -- all IPMI responses
*/
if (rsp->session.payloadtype == IPMI_PAYLOAD_TYPE_IPMI) {
struct ipmi_rq_entry * entry;
@@ -863,7 +879,7 @@ ipmi_lan_poll_single(struct ipmi_intf * intf)
* Receive whatever comes back. Ignore received packets that don't correspond
* to a request we've sent.
*
- * Returns: the ipmi_rs packet describing the/a reponse we expect.
+ * Returns: the ipmi_rs packet describing the/a response we expect.
*/
static struct ipmi_rs *
ipmi_lan_poll_recv(struct ipmi_intf * intf)
@@ -881,7 +897,7 @@ ipmi_lan_poll_recv(struct ipmi_intf * intf)
/*
- * read_open_session_reponse
+ * read_open_session_response
*
* Initialize the ipmi_rs from the IPMI 2.x open session response data.
*
@@ -903,7 +919,7 @@ read_open_session_response(struct ipmi_rs * rsp, int offset)
/* Message tag */
rsp->payload.open_session_response.message_tag = rsp->data[offset];
- /* RAKP reponse code */
+ /* RAKP response code */
rsp->payload.open_session_response.rakp_return_code = rsp->data[offset + 1];
/* Maximum privilege level */
@@ -970,7 +986,7 @@ read_rakp2_message(
/* Message tag */
rsp->payload.rakp2_message.message_tag = rsp->data[offset];
- /* RAKP reponse code */
+ /* RAKP response code */
rsp->payload.rakp2_message.rakp_return_code = rsp->data[offset + 1];
/* Console session ID */
@@ -1051,7 +1067,7 @@ read_rakp4_message(
/* Message tag */
rsp->payload.rakp4_message.message_tag = rsp->data[offset];
- /* RAKP reponse code */
+ /* RAKP response code */
rsp->payload.rakp4_message.rakp_return_code = rsp->data[offset + 1];
/* Console session ID */
@@ -1162,19 +1178,6 @@ read_session_data_v2x(
#endif
- /*
- * Verify that the session ID is what we think it should be
- */
- if ((s->v2_data.session_state == LANPLUS_STATE_ACTIVE) &&
- (rsp->session.id != s->v2_data.console_id))
- {
- lprintf(LOG_ERR, "packet session id 0x%x does not "
- "match active session 0x%0x",
- rsp->session.id, s->v2_data.console_id);
- assert(0);
- }
-
-
/* Ignored, so far */
memcpy(&rsp->session.seq, rsp->data + *offset, 4);
*offset += 4;
@@ -1399,10 +1402,6 @@ void getIpmiPayloadWireRep(
msg[len++] = IPMI_REMOTE_SWID;
msg[len++] = curr_seq << 2;
msg[len++] = 0x34; /* Send Message rqst */
- #if 0 /* From lan.c example */
- entry->req.msg.target_cmd = entry->req.msg.cmd; /* Save target command */
- entry->req.msg.cmd = 0x34; /* (fixup request entry) */
- #endif
msg[len++] = (0x40|intf->target_channel); /* Track request*/
payload->payload_length += 7;
@@ -2101,7 +2100,7 @@ ipmi_lanplus_send_payload(
struct ipmi_v2_payload * payload)
{
struct ipmi_rs * rsp = NULL;
- uint8_t * msg_data;
+ uint8_t * msg_data = NULL;
int msg_length;
struct ipmi_session * session = intf->session;
struct ipmi_rq_entry * entry = NULL;
@@ -2341,6 +2340,7 @@ ipmi_lanplus_send_payload(
case IPMI_PAYLOAD_TYPE_RMCP_OPEN_REQUEST:
case IPMI_PAYLOAD_TYPE_RAKP_1:
case IPMI_PAYLOAD_TYPE_RAKP_3:
+ case IPMI_PAYLOAD_TYPE_SOL:
free(msg_data);
msg_data = NULL;
break;
@@ -3416,7 +3416,7 @@ ipmi_lanplus_open(struct ipmi_intf * intf)
if (!ipmi_oem_active(intf, "i82571spt") &&
ipmi_get_auth_capabilities_cmd(intf, &auth_cap)) {
lprintf(LOG_INFO, "Error issuing Get Channel "
- "Authentication Capabilies request");
+ "Authentication Capabilities request");
goto fail;
}
diff --git a/src/plugins/lipmi/Makefile.am b/src/plugins/lipmi/Makefile.am
index 61c50f4..ca7aa0a 100644
--- a/src/plugins/lipmi/Makefile.am
+++ b/src/plugins/lipmi/Makefile.am
@@ -30,7 +30,7 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_lipmi.la
noinst_LTLIBRARIES = @INTF_LIPMI_LIB@
diff --git a/src/plugins/lipmi/Makefile.in b/src/plugins/lipmi/Makefile.in
index eb8000f..be4996d 100644
--- a/src/plugins/lipmi/Makefile.in
+++ b/src/plugins/lipmi/Makefile.in
@@ -338,7 +338,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_lipmi.la
noinst_LTLIBRARIES = @INTF_LIPMI_LIB@
libintf_lipmi_la_LIBADD = $(top_builddir)/lib/libipmitool.la
diff --git a/src/plugins/open/Makefile.am b/src/plugins/open/Makefile.am
index 89ce711..edc4916 100644
--- a/src/plugins/open/Makefile.am
+++ b/src/plugins/open/Makefile.am
@@ -30,7 +30,7 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_open.la
noinst_LTLIBRARIES = @INTF_OPEN_LIB@
diff --git a/src/plugins/open/Makefile.in b/src/plugins/open/Makefile.in
index bb4be5e..c4b7714 100644
--- a/src/plugins/open/Makefile.in
+++ b/src/plugins/open/Makefile.in
@@ -338,7 +338,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_open.la
noinst_LTLIBRARIES = @INTF_OPEN_LIB@
libintf_open_la_LIBADD = $(top_builddir)/lib/libipmitool.la
diff --git a/src/plugins/open/open.c b/src/plugins/open/open.c
index fc685de..df56172 100644
--- a/src/plugins/open/open.c
+++ b/src/plugins/open/open.c
@@ -44,6 +44,7 @@
#include <ipmitool/ipmi.h>
#include <ipmitool/ipmi_intf.h>
+#include <ipmitool/ipmi_sel.h>
#include <ipmitool/helper.h>
#include <ipmitool/log.h>
diff --git a/src/plugins/serial/Makefile.am b/src/plugins/serial/Makefile.am
index 5bfbd0d..c1a3083 100644
--- a/src/plugins/serial/Makefile.am
+++ b/src/plugins/serial/Makefile.am
@@ -30,7 +30,7 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_serial.la
noinst_LTLIBRARIES = @INTF_SERIAL_LIB@
diff --git a/src/plugins/serial/Makefile.in b/src/plugins/serial/Makefile.in
index cae1857..aa03dd8 100644
--- a/src/plugins/serial/Makefile.in
+++ b/src/plugins/serial/Makefile.in
@@ -338,7 +338,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_serial.la
noinst_LTLIBRARIES = @INTF_SERIAL_LIB@
libintf_serial_la_LIBADD = $(top_builddir)/lib/libipmitool.la
diff --git a/src/plugins/serial/serial_basic.c b/src/plugins/serial/serial_basic.c
index fe2ebff..e3322c1 100644
--- a/src/plugins/serial/serial_basic.c
+++ b/src/plugins/serial/serial_basic.c
@@ -45,7 +45,7 @@
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <termios.h>
#include <ipmitool/ipmi.h>
diff --git a/src/plugins/serial/serial_terminal.c b/src/plugins/serial/serial_terminal.c
index dfcc202..cd33422 100644
--- a/src/plugins/serial/serial_terminal.c
+++ b/src/plugins/serial/serial_terminal.c
@@ -45,7 +45,7 @@
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <termios.h>
#include <ipmitool/ipmi.h>
diff --git a/src/plugins/usb/Makefile.am b/src/plugins/usb/Makefile.am
index 2a431f7..ce68fb7 100644
--- a/src/plugins/usb/Makefile.am
+++ b/src/plugins/usb/Makefile.am
@@ -31,7 +31,7 @@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_usb.la
noinst_LTLIBRARIES = @INTF_USB_LIB@
diff --git a/src/plugins/usb/Makefile.in b/src/plugins/usb/Makefile.in
index 298e11d..c3cfc41 100644
--- a/src/plugins/usb/Makefile.in
+++ b/src/plugins/usb/Makefile.in
@@ -308,7 +308,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_srcdir)/include
+AM_CPPFLAGS = -I$(top_srcdir)/include
EXTRA_LTLIBRARIES = libintf_usb.la
noinst_LTLIBRARIES = @INTF_USB_LIB@
libintf_usb_la_LIBADD = $(top_builddir)/lib/libipmitool.la