]> mj.ucw.cz Git - pciutils.git/blobdiff - ChangeLog
setpci: Decorate trace() with PCI_PRINTF.
[pciutils.git] / ChangeLog
index 4765457d2698d971a33954295c45b6f7648b1eb0..76721614ef11589c7c20f333cf63aa92786fc4bb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2008-11-09  Martin Mares <mj@ucw.cz>
+
+       * Released as 3.0.3.
+
+       * `lspci -k' now displays the subsystem ID, too. This makes `-k'
+       show everything needed to identify the device and the available
+       drivers, which was called for by many users.
+
+       * Fixed spelling of MSI. Patch by Matthew Wilcox.
+
+       * Better support for cross-compilation. Thanks to Alon Bar-Lev
+       for the patch.
+
+       * Fixed printing of the AER capability. Patch by Max Asbock.
+
+       * HT 1.02 capabilities are decoded as HT 1.03. Suggested by
+       Carl-Daniel Hailfinger.
+
+       * Fixed Cygwin build. Thanks to Steve Elliott for reporting the bug.
+
+       * Updated pci.ids to the current snapshot of the database.
+
+2008-09-19  Martin Mares <mj@ucw.cz>
+
+       * Released as 3.0.2.
+
+       * Fixed a minor bug in the configure script, which caused warnings
+       about redefinition of symbols during compilation.
+
+2008-09-11  Martin Mares <mj@ucw.cz>
+
+       * Released as 3.0.1.
+
+       * Updated pci.ids to the most recent snapshot.
+
+       * Added a Cygwin port. Patch by Christopher Voltz, ported to the
+       current tree by Martin Mares.
+
+       * Worked around compatibility problems with various default settings
+       of wget (we have to set --no-timestamping explicitly). Thanks to Ville
+       Skytta for pointing that out.
+
+       * Fixed printing of MSI capabilities. Thanks to Matthew Wilcox for
+       a patch.
+
+       * Added decoding of several PCI-X capabilities: device/link/slot 2,
+       Advanced Error Reporting, Access Control Services, Alternative Routing-ID,
+       Single Root I/O Virtualization. Thanks to Yu Zhao for patches.
+
+       * Fixed bug in filters which caused them to refuse vendor/device ID 0xffff.
+
+       * README: The linux-pci mailing list has moved to linux-pci@vger.kernel.org.
+
+       * Fixed several build problems: builds without PCI_USE_DNS on Linux
+       and with PCI_USE_DNS on Solaris and *BSD. Static library mode also
+       compiles again on old versions of GCC.
+
+2008-04-10  Martin Mares <mj@ucw.cz>
+
+       * Released as 3.0.0.
+
+       * Updated API and ABI version.
+
+2008-02-20  Martin Mares <mj@ucw.cz>
+
+       * Released as 2.99.1-alpha2.
+
+       * Changed the default domain for the DNS resolver.
+
+2008-02-18  Martin Mares <mj@ucw.cz>
+
+       * Released as 2.99.1-alpha1.
+
+       * The makefile system has been reworked. All configuration settings
+       are now passed to the configure script in environment variables,
+       allowing for easy tweaking in the top-level Makefile. All control
+       knobs are now described in the README.
+
+       * The libpci can be built as a shared library with properly restricted
+       symbol exports. Use `make SHARED=yes' to enable that or `make SHARED=local'
+       for a local testing build (with hardwired paths to the library, so that
+       it does not need installation).
+
+       * The example program has been moved from lib/example.c to the top-level
+       directory, because it should be built exactly as the other utilities
+       are. It has been also improved slightly to educate better.
+
+       * The i386-ports method is enabled on Linux/x86_64 as well.
+
+2008-02-13  Martin Mares <mj@ucw.cz>
+
+       * Released as 2.2.10-net2.
+
+       * Support for resolving of PCI ID's using DNS together with a local
+       cache of resolved entries has been added. See the `-q' and `-Q' options
+       of lspci.
+
+       * The library now has a generic system of settable parameters, which
+       also include settings of the DNS resolver and cache. An `-O' option
+       has been added to lspci and setpci to allow setting of these options.
+
+       * Configuration of the access methods are now specified by the new
+       parameter system, replacing the pci_access->method_params array.
+
+       * Access methods now also have sensible names and help texts and it
+       is possible to look up method ID by a name.
+
+       * An `-A' switch has been added to both lspci and setpci, allowing to
+       select an arbitrary access method. The `-P' switch (configure proc
+       backend) has been removed as it is no longer needed and I do not know
+       any its user.
+
+       * Several source files have been split for better maintainability
+       (most notably the resolving of ID's).
+
+       * Man pages and help texts have been updated. A new man page `pcilib(7)'
+       has been added and description of library options has been moved there.
+
+       * When an unknown device ID is encountered, we print `Device <id>'
+       instead of `Unknown device <id>'. It uses less space and it also
+       should reduce the number of inexperienced users complaining that
+       the device is not supported by the OS. To lookup up OS drivers,
+       use the `-k' option.
+
+       * PCI_LIB_VERSION has been bumped to 0x020299.
+
+       * Makefile: stripping of the binaries during installation can be
+       overridden by the STRIP variable.
+       
+       * lib/types.h: We use the integer types from <stdint.h> if the
+       compiler claims C99 support.
+
+2008-02-11  Martin Mares <mj@ucw.cz>
+
+       * Released as 2.2.10.
+
+       * lspci.c, setpci.c: Cleaned up the list of options.
+
+       * lib/names.c: Fix displaying of errors reported by zlib.
+       Previously, the buffer containing the error message had
+       been deallocated by gzclose() before the message was printed.
+
+2008-01-07  Martin Mares <mj@ucw.cz>
+
+       * update-pciids.sh: Added quiet mode (-q). Clean up uncompressed
+       files left by previous versions of the pciutils. Patch by Mike
+       Frysinger.
+
+       * update-pciids.man: Mention the -q switch.
+
+2007-11-29  Martin Mares <mj@ucw.cz>
+
+       * lib/dump.c: Squashed compiler warnings about code with
+       no effect (there really were surplus *'s).
+
+2007-11-06  Martin Mares <mj@ucw.cz>
+
+       * Released as 2.2.9.
+
+       * lspci.c: Added a new switch `-k' which requests printing
+       of information on kernel drivers attached to each device
+       and on kernel modules reporting the ability to handle the
+       device. So far, this is supported only on Linux with the
+       sysfs back-end, so it is implemented internally in the lspci
+       instead of the libpci. Thanks to Anicka <anicka@anicka.net>
+       for help.
+
+2007-10-19  Martin Mares <mj@ucw.cz>
+
+       * Makefile, lib/Makefile: Moved -lz from LDFLAGS to LDLIBS.
+       Also added an explicit pattern rule for linking to make sure
+       that LDLIBS is used on all platforms. Thanks to Dan Nicholson
+       for the suggestion.
+
+2007-10-19  Martin Mares <mj@ucw.cz>
+
+       * Released as 2.2.8.
+
+       * pci.ids: Revised class codes to match Conventional PCI 3.0 specs.
+       Added a couple of new ones, renumbered `ADMA continuous operation'
+       prog-if to 0x30 (even the old SATA Class Code ECN doesn't mention
+       0x40) and renumbered the satellite communication controllers.
+
+       * lib/header.h: Include `PCI hot-plug' and `Secure device'
+       capabilities from PCI 3.0 specs. Also added `SATA HBA' and
+       `Advanced features' caps from various ECN's.
+
+       * lspci.c: All known capabilities have at least their name displayed
+       now. When we are unable to decode them completely, we signalize it
+       with a `<?>' mark.
+
+       * lspci.man: Document `<?>' and also mention that extended config
+       space is currently available only with the linux_sysfs back-end.
+
+       * lspci.c: Decode the Debug port capability (per EHCI 0.96 spec).
+
+       * lspci.c: Big code cleanup: re-arranged functions in the code,
+       renamed everything related to capabilities to cap_* and
+       all options except verbose to opt_*.
+
+2007-10-14  Martin Mares <mj@ucw.cz>
+
+       * lib/[fno]bsd-*: Removed extraneous braces.
+
+2007-10-12  Martin Mares <mj@ucw.cz>
+
+       * Capability loop detection introduced 2.2.7 did not work
+         properly with extended capabilities. Fixed.
+
+2007-10-05  Martin Mares <mj@ucw.cz>
+
+       * Released as 2.2.7.
+
+       * lspci.c (show_caps, show_ext_caps): Detect and report loops in
+       capability lists.
+
+       * lspci.c, lib/header.h: Finished decoding of the PCI Express
+       capability. The extended capabilities remain undecoded for now,
+       but at least the list of them has been updated to reflect the
+       current PCI Express 2.0 spec.
+
+       * lspci.c, lib/header.h: Decode new bits of traditional registers
+       as defined by PCIE / PCI-X. This includes discard timers in the bridge
+       control register and INTx enable/status in device control/status
+       registers.
+
+       * lib/fbsd-device.c: Support domains on new FreeBSD's. Contributed
+       by Marius Strobl.
+
+2007-09-12  Hasso Tepper <hasso@estpak.ee>
+
+       * Extended the fbsd-device backend to run on Dragonfly BSD.
+
+       * lspci.c: alloca() is declared in <stdlib.h> on BSD's, not <alloca.h>.
+
+2007-09-03  Martin Mares <mj@ucw.cz>
+
+       * Resurrected the Windows port, including cross-compilation by MinGW.
+       Patch by Samuel Bronson <naesten@gmail.com>.
+
+2007-08-31  Martin Mares <mj@ucw.cz>
+
+       * Makefile, lib/Makefile: `ar' and `ranlib' can be overriden to allow
+       cross-compilation.
+
+2007-08-27  Martin Mares  <mj@ucw.cz>
+
+       * lib/names.c (pci_open): When calling gzopen(), use "rb" file mode
+       instead of "r". This is needed on DOS systems, where this function
+       somewhat illogically uses the binary flag for the compressed file
+       instead of the decompressed stream inside, where binariness really
+       matters.
+
+2007-08-14  Martin Mares  <mj@ucw.cz>
+
+       * lspci.c (show_ht): Added decoding of Hypertransport MSI mapping capability,
+       based on a patch by Jason Gunthorpe.
+
+       * tests/cap-MSI-mapping: Added a test case. I plan to add test cases
+       (which are dumps of config space) for all new features.
+
+2007-06-20  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.2.6.
+
+       * Makefile: Added an "install-lib" target. Thanks to Dan Nicholson
+       for a patch.
+
+       * Makefile, lib/Makefile: Generate and install pkg-config file
+       for libpci. Again by Dan Nicholson.
+
+2007-06-20  Thomas Schwinge  <tschwinge@gnu.org>
+
+       * lib/i386-io-hurd.h: Rewritten for new Hurd kernels.
+
+2007-05-04  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.2.5.
+
+       * pci.ids: Updated to the current snapshot of the database.
+
+2007-02-14  Martin Mares  <mj@ucw.cz>
+
+       * lspci.c (show_express): Added PCI/PCI-X to PCI-Express Bridge type.
+       Patch by Mark Glines.
+
+2007-02-09  Martin Mares  <mj@ucw.cz>
+
+       * pci.ids: Updated to the current snapshot of the database.
+
+2007-02-06  Martin Mares  <mj@ucw.cz>
+
+       * Replaced bzero() by memset() everywhere, it's better to lose a tiny
+       bit of readability than maintain hacks to make it work on various systems.
+
+       * lib/configure: tr on Solaris is a bit weird and it requires `[A-Z]'
+       instead of `A-Z'. Fortunately, the extra brackets don't hurt otherwise.
+
+       * lib/types.h, lib/configure: Solaris should use <stdint.h> to get precise
+       integer types.
+
+2007-02-04  Martin Mares  <mj@ucw.cz>
+
+       * lspci.c: alloca() needs <alloca.h>.
+
+2006-09-17  Martin Mares  <mj@ucw.cz>
+
+       * lib/dump.c: Fixed a couple of bugs in the dump backend which caused
+       devices with domains or with extended config space to be read incorrectly.
+       Also, dumps with partial lines are allowed now.
+
+2006-09-10  Martin Mares  <mj@ucw.cz>
+
+       * pci.ids: Updated to the current database snapshot.
+
+       * lspci.c (scan_device): If an error occurs when reading the standard config
+       header of a device, report it and ignore the device and return with exit
+       code 2 at the end.
+
+2006-09-09  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.2.4.
+
+       * maint/release: Remind the maintainer about the current PCI_LIB_VERSION.
+
+       * lib/pci.h: Updated PCI_LIB_VERSION.
+
+       * lspci.c (show_machine): In the `-m' mode, do proper shell escaping
+       if the fields printed contain quotes or backslashes.
+
+       * lspci.c (show_machine): Added a `-vmm' mode, which removes the misuse
+       of the `Device' tag for two different purposes.
+
+       * Makefile: Moved all system-dependent decisions to lib/configure,
+       since config.mk is included in the top-level Makefile anyway.
+
+       * lib/configure: When configuring for Linux, ignore the kernel version
+       and always build all access methods.
+
+       * Makefile (CFLAGS): Removed -Winline, it's not needed and triggers
+       at many non-interesting places with gcc 3.4.
+
+       * Whitespace cleanup of all source files.
+
+       * The pci.ids file can be stored compressed if zlib is available.
+       Added transparent decompression to lib/names.c, modified update-pciids.sh
+       to keep the file compressed if applicable, updated Makefiles.
+       Based on a patch by Matthew Wilcox, but all the bugs are mine.
+
+       * Makefile, README: Allow installation to be done to a different directory
+       from the one we will eventually be placed in by setting DESTDIR.
+       Patch by Matthew Wilcox.
+
+       * Added .gitignore files.
+
+       * Makefile (clean): Clean *.orig, too.
+
+       * Cleaned up usage of `char' and `byte'.
+
+       * lib/header.h: PCI_CLASS_DOCKING_OTHER should be 0x0a80, not 0x0a01.
+
+       * lib/header.h: Added PCI_CLASS_xxx constants for all classes currently
+       defined in the pci.ids file.
+
+2006-08-01  Martin Mares  <mj@ucw.cz>
+
+       * lib/i386-io-hurd.h: Fixed a silly typo.
+
+2006-07-30  Martin Mares  <mj@ucw.cz>
+
+       * lib/Makefile: Added a missing rule for obsd-device.o.
+
+       * lspci.c, lib/header.h: Added support for MSI per-vector masking.
+       Contributed by Petr Vandrovec.
+
+       * lspci.c, lib/header.h: Added support for the `bridge subsystem ID'
+       capability. Contributed by Petr Vandrovec.
+
+       * lspci.c (show_htype1): Fixed bug in printing of 64-bit prefetchable
+       memory windows. Fix by Petr Vandrovec.
+
+       * maint/release.pm: Exclude .git directory from releases.
+
+       * lib/i386-ports.c, lib/i386-io-*: Report failures during port access
+       initialization by a->warn() instead of calling printf() or perror()
+       directly.
+
+       * lib/i386-ports.c, lib/i386-io-*: Moved the logic which keeps track of
+       the port access state to generic code.
+
+       * lib/i386-io-hurd.h: Ask the kernel for I/O port access appropriately.
+       Contributed by Thomas Schwinge and Samuel Thibault.
+
+       * lib/i386-ports.c: Define _GNU_SOURCE, it's needed by the Hurd module.
+
+       * lib/header.h: Whitespace cleanups.
+
+       * lib/i386-io-windows.h: Fixed indentation and spelling.
+
+       * README.Windows: Mention that WinIO.dll is needed and where to get it.
+
+2006-06-27  Martin Mares  <mj@ucw.cz>
+
+       * lib/Makefile, Makefile: Added rules for building and cleaning the example.
+
+       * lib/example.c: Show how to use PCI_FILL_CLASS and used another register
+       for demonstrating the config space accesses. The example is still very
+       incomplete, though.
+
+       * lib/pci.h, lib/generic.c: Added PCI_FILL_CLASS.
+
+       * lib/sysfs.c: Fetch device ID and class from sysfs, because they can
+       be modified by kernel fixups.
+
+       * lspci.c: Use PCI_FILL_CLASS. Thanks to Matthew Willcox for the patch.
+
+2006-06-03  Martin Mares  <mj@ucw.cz>
+
+       * lspci.c: Introduced the -nn switch. Thanks to David N. Welton
+       for the idea.
+
+       * lib/names.c (pci_lookup_name): Introduced PCI_LOOKUP_MIXED and
+       cleaned up the name selection code.
+
+       * lib/names.c (pci_lookup_name): If PCI_LOOKUP_NO_NUMBERS is given,
+       pci_access->numeric_ids is ignored.
+
+       * lib/names.c (pci_lookup_name): When class is identified and
+       subclass isn't, display class name and subclass number.
+
+2006-05-31  Martin Mares  <mj@ucw.cz>
+
+       * setpci.c (main): Don't crash when an invalid width is specified.
+
+       * lspci.c, setpci.c, common.c: die() now uses the right program
+       name when printing an error message.
+
+2006-05-19  Martin Mares  <mj@ucw.cz>
+
+       * README: Mention the public GIT tree.
+
+       * README: Updated the list of ports.
+
+2006-05-10  Martin Mares  <mj@ucw.cz>
+
+       * lib/configure, lib/fbsd-device.c: Added support for GNU/kFreeBSD.
+       Thanks to Petr Salinger for the patch.
+
+2006-05-05  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.2.3.
+
+       * lspci.c (scan_device): The -D switch didn't work as intended
+       in -m mode.
+
+2006-05-05  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.2.2.
+
+       * pci.ids: Updated to the current database snapshot.
+
+       * lib/obsd-device.c (and other files in lib/*): Added OpenBSD
+       interface by Matthieu Herrb <matthieu.herrb@laas.fr>, based on
+       the existing FreeBSD interface.
+
+       * Moved pciutils to a GIT repository, which now contains merged
+       history from both CVS and Arch. Good bye, TLA!
+
+2006-03-21  Martin Mares  <mj@ucw.cz>
+
+       * lspci.c (show_slot_name): Avoid the previous changes in default
+       display of domain name when in machine-readable mode. However, `-D'
+       forces domain display even there.
+
+       * lspci.man: Added a warning on -m being the only format, which is
+       guaranteed to be stable between lspci versions.
+
+2006-03-13  Martin Mares  <mj@ucw.cz>
+
+       * lspci.man: Documented the -D switch.
+
+       * lspci.c (show_slot_name, scan_device): If there are multiple PCI
+       domains or if the `-D' switch is used, show the domain number for
+       all devices.
+
+       * lspci.c (show_verbose): Report cache line size in bytes.
+
+       * update-pciids.sh: Use curl if available. Patch by Matthew Wilcox.
+
+2006-01-04  Martin Mares  <mj@ucw.cz>
+
+       * lspci.c (show_express_link): Fixed decoding of link status register.
+       Thanks to Roland Dreier for his report.
+
+2005-12-12  Martin Mares  <mj@ucw.cz>
+
+       * lib/nbsd-libpci.c: If libpci is used by an ordinary user, allow
+       at least read-only access. Patch by Pavel Celeda <celeda@liberouter.org>.
+
+       * Makefile: Corrected library path on NetBSD.
+
+2005-11-26  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.2.1.
+
+       * lspci.c (show_machine): Subsystem vendors were printed incorrectly
+       in machine-readable modes. Thanks to Pavel Celeda for a bug report.
+
+2005-10-11  Martin Mares  <mj@ucw.cz>
+
+       * lspci.c (new_bus): Fixed a memory leak. Thanks to Paul Sangree for reporting it.
+
+2005-09-21  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.2.0.
+
+       * pci.ids: Updated copyright header.
+
+       * lib/sysfs.c (sysfs_get_resources): Removed warning about unsupported
+       64-bit addresses, they are now always supported.
+
+       * lspci.c (show_bases): Corrected printing of 64-bit addresses
+       in bus-centric mode.
+
+       * lib/configure: Enable 64-bit addresses on all Linux systems.
+
+       * lib/types.h: Don't pad 64-bit addresses to 16 xigits, only to 8 if they
+       are shorter.
+
+2005-09-11  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test11.
+
+       * lspci.c: Removed unnecessary trailing zeros in pci_lookup_name() calls.
+
+2005-09-10  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test10.
+
+       * pci.ids: Synchronized with the current database snapshot.
+
+       * update-pciids.sh: Changed the default URL for downloading pci.ids
+       to http://pciids.sourceforge.net/v2.2/pci.ids.
+
+       * lib/pci.h (PCI_LIB_VERSION): Added version identifier.
+
+       * lib/names.c: Rewritten the name database module almost from scratch.
+       Everything is much cleaner and there are hopefully no more memory leaks;
+       pci_lookup_name() now uses varargs in a backward compatible fashion.
+       Introduced PCI_LOOKUP_NO_NUMBERS.
+
+       The new code supports subsystem entries not tied to a specific device.
+       I had to extend the format of pci.ids in order to support it, so I have
+       extended the idea of the "C" (class) blocks and introduced "S" blocks
+       for subsystems. To avoid doing more incompatible changes in the future,
+       the parser skips unknown single-letter blocks without reporting errors.
+
+2005-08-23  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test9.
+
+       * Makefile (OPT): Removed -fomit-frame-pointer, it's default in recent
+       gcc versions when optimizing anyway.
+
+       * Made the path to pci.ids customizable and independent on the SHAREDIR.
+       Just override IDSDIR in the top-level Makefile.
+
+       * pci.ids: Synchronized with the current database snapshot.
+
+       * lspci.man, setpci.man: Improved the man pages. Documented all access
+       methods and which operations are privileged.
+
+       * lspci.c: Another rewrite of config register caching, now also including
+       lots of internal checks. It should be now perfectly able to cope with
+       portions of the configuration space being inaccessible, for example
+       due to insufficient access rights.
+
+       * lspci.c (show_pcix_nobridge, show_pcix_bridge): Cleaned up dumping of PCI-X
+       capabilities. Includes partial support for PCI-X 2.0 (probably incomplete
+       as I haven't seen the spec).
+
+       * lspci.c: Quell warnings about unused parameters.
+
+       * lspci.c: Removed C++ comments.
+
+       * lib/header.h: Merged definitions of extended capabilities and some new
+       PCI-X capability bits from linux-2.6.11/include/pci.h.
+
+       * lspci.c (show_caps): Try to scan extended capabilities only if the
+       device has either PCI-X or PCI Express capability in its normal capability
+       list.
+
+       * lib/dump.c (dump_init): Reading of dumps works again. The dump reader
+       now also remembers how much data it has read and refuses attempts to
+       access more than that.
+
+       * setpci.man, lspci.c, README: prefer spelling "buses" over "busses".
+
+       * lspci.c: If alloca() is not available, use xmalloc(), not malloc().
+
+       * lib/configure: Added x86_64 on Linux.
+
+2005-08-22  Martin Mares  <mj@ucw.cz>
+
+       * lib/filter.c (pci_filter_parse_slot): Fixed parsing of domain filters.
+       Thanks to Matthew Wilcox for bug report.
+
+       * lspci.c: Corrected spelling of "Hz" (it was "hz" at several places).
+       Thanks to Krzysztof Oledzki for pointing that out.
+
+2004-08-19  Martin Mares  <mj@ucw.cz>
+
+       * pciutils.spec (%attr): Setting attributes for /sbin/* is an anachronism,
+       because pciutils by default install to /usr/sbin. Update.
+
+2004-08-13  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test8.
+
+       * lib/types.h, lib/pci.h, lib/sysdep.h: `byte' and `word' are
+       no longer exported to the outside world.
+
+       * README.Windows: Updated.
+
+       * maint/release: Substitute version number in win32/config.h.
+
+       * win32/config.h: Added.
+
+       * lib/sysdep.h (bzero, strcasecmp): are macros on Windows.
+
+       * compat/getopt.[ch]: Added copies of getopt.[ch] from the GNU
+       C library for use on systems where the default libraries lack
+       proper getopt. Currently used by the Windows port.
+
+       * lib/sysdep.h, lib/types.h: Updates of the Windows port from
+       Alexander Stock.
+
+       * lib/types.h: If PCI_HAVE_Uxx_TYPES is defined, libpci doesn't define
+       its own u8, u16, u32, byte and word types and uses what the user
+       has supplied instead. With this change, all namespace clashes should
+       be gone.
+
+       * Makefile, lib/Makefile: Updated dependencies.
+
+       * pciutils.h: Include lib/sysdep.h and move NONRET et al. there.
+
+       * lib/sysdep.h: No need to include <sys/types.h> on FreeBSD, because
+       it is included unconditionally in lib/types.h.
+
+       * Moved system-dependent stuff from lib/internal.h to lib/sysdep.h,
+       which is also used by the utilities. Also moved type declarations
+       from lib/pci.h to lib/types.h.
+
+       * All files: Prepend a "PCI_" prefix in front of all configuration
+       defines to avoid namespace clashes. CAVEAT: If there is any libpci
+       application using the (undocumented) defines, it has to be updated.
+
+       * lib/Makefile: Killed HAVE_OWN_HEADER_H, since we stopped sharing
+       headers with the kernel a couple of years ago.
+
+       * lib/sysfs.c (sysfs_get_resources): We have 7 resources, not 6.
+
+       * lspci.c (show_rom): Use the same logic for printing disabled
+       or unassigned ROM's as we do in show_bases() for the other BAR's.
+
+       * lib/generic.c (pci_generic_fill_info): Better reaction to
+       invalid 64-bit addresses. Also d->hdrtype should not include
+       bit 7, which caused mysterious errors on multi-function devices.
+
+       * lib/generic.c (pci_generic_fill_info): Fill in base addresses
+       even if the regions are known to be disabled. It is the client's
+       job to interpret them. (And it is not a trivial job if you want
+       to do it correctly, since you need to check I/O and memory enables
+       on all upstream bridges, too.) However, it could be interesting to
+       introduce functions for interpreting the addresses and even for
+       mapping the regions and doing I/O on them.
+
+2004-07-30  Martin Mares  <mj@ucw.cz>
+
+       * lspci.c: HyperTransport improvements from Maciej.
+
+2004-07-11  Martin Mares  <mj@ucw.cz>
+
+       * lib/sysfs.c (sysfs_get_resources): Arguments now correspond
+       to the format string. [Patch by Bill Nottingham]
+
+2004-07-05  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test7.
+
+       * lspci.c (config_fetch): Wanted to merge Matthew's bug fix, but
+       ended up with rewriting the fetching mechanism to be fully dynamic,
+       but avoid reading config space registers not explicitly requested.
+
+2004-06-29  Matthew Wilcox <willy@debian.org>
+
+       * lspci.c: More work on PCI Express dumping.
+
+       * lib/header.h: Updated PCI Express capability definitions.
+
+       * lib/proc.c (proc_read): Removed bogus warning.
+
+       * common.c (xrealloc): Introduced.
+
+       * lspci.man: Added -xxxx.
+
+2004-06-27  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test6.
+
+       * lspci.c (show_msix), lib/header.h: Added dumping of MSI-X cap.
+       Patch by Roland Dreier <roland@topspin.com>, cleaned up by me.
+
+       * lspci.c (show_pcix_nobridge, show_pcix_bridge): Handle config_fetch()
+       failures.
+
+       * lib/header.h: Added PCI Express extended capabilities. Again by Matthew.
+
+       * lspci.c (show_express): Added dumping of PCI Express cap.
+       Patch by Matthew Wilcox.
+
+       * lib/header.h: Added a list of PCI 3.0 capabilities and also details
+       on PCI Express caps. Patch by Matthew Wilcox <willy@debian.org>.
+
+       * lspci.c (check_root): Gone. No explicit checks for root are needed,
+       report correct errors reported by the libpci instead.
+
+       * lspci.c: Added dumping of the extended config space on "-xxxx".
+       Better caching of config registers.
+
+       * setpci.c (main): Allow access to whole 4096 bytes of the config space.
+
+       * lib/sysfs.c, lib/proc.c: Don't print error messages on short reads,
+       just return the appropriate error code.
+
+       * lib: Added support for extended (4096-byte) configuration space,
+       currently implemented only in Linux proc and sysfs access methods
+       and of course in the dump reader.
+
+2004-05-29  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test5.
+
+       * lib/pci.h: Windows don't have the standard u_int* types.
+
+       * lib/internal.h: <sys/param.h> required on Windows for endianity
+       macros.
+
+       * lib/i386-ports.c: Connected i386-io-windows.h.
+
+       * lspci.c (check_root): geteuid() is not available on Windows.
+
+       * lib/i386-io-windows.h: Added Windows port contributed by Alexander
+       Stock <stock.alexander@gmx.de>.
+
+       * lib/configure: Hopefully fixed SunOS port broken by various
+       changes to the configure script.
+
+       * Makefile, lib/configure: Cross-compilation support, patch by Maciej.
+
+2004-05-28  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test4.
+
+       * lspci.c (show_verbose): Header type 1 is probably legal for all
+       types of bridges, not only for PCI-to-PCI bridges.
+
+       * lspci.c (format_agp_rate): Write "x16", not "x@".
+       (show_agp): rate[] could overflow.
+       Bugs reported by Jakub Bogusz <qboosh@pld-linux.org>.
+
+       * lspci.c (show_ht_*): Show HyperTransport capability with all its
+       details. Once again code by Maciej simplified (i.e., possibly broken)
+       by me.
+
+       * lib/header.h: Added declarations of HyperTransport capability.
+       Again thanks to Maciej.
+
+       * lspci.c: Decode all bits of the secondary status word in type 1 headers.
+       Thanks to Maciej W. Rozycki <macro@ds2.pg.gda.pl> for the patch.
+
+2003-12-27  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test3.
+
+       * lspci.man, setpci.man: Document domains and correct spelling.
+
+       * lib/dump.c (dump_init): Added ability to read domain numbers.
+
+       * lspci.c: Devices in domains different from 0 have their slot number
+       printed as "<domain>:<bus>:<slot>.<func>". Tree view supports domains
+       as well.
+
+       * lib/filter.c: Slot filters understand domains.
+
+       * lib/generic.c: Mention the domain in slot numbers in all error messages.
+
+       * lib/internal.h: The #ifdef for Linux <asm/byteorder.h> was wrong.
+
+       * lib/access.c (pci_get_dev): Added support for domains.
+
+       * lib/sysfs.c (sysfs_scan): Read vendor and device ID from the config
+       registers (or to be precise, leave it for the generic parts of the pcilib
+       to do so) instead of reading them from the sysfs. It's faster this way.
+
+       * lspci.c (show_pcix): Don't touch pci_dev->hdrtype, it's an internal
+       variable. Better read it from the config registers (it's cached anyway).
+
+       * lib/sysfs.c (sysfs_scan), lib/proc.c (proc_scan): Don't read the hdrtype.
+         lib/generic.c (pci_generic_fill_info): If hdrtype is -1 (unset), read it.
+         Saves lots of unnecessary file accesses.
+
+       * lib/pci.h (PCIADDR_PORT_FMT): Use %llx instead of %Lx, because the latter
+       is not supported by all C libraries.
+
+       * Makefile: Always enter the lib directory (remember that we don't have
+       full dependecies for the library in the top-level Makefile; hmmm, another
+       thing to rewrite some day).
+
+       * lib/sysfs.c: Added Linux sysfs access method based on the patch
+       written by Matthew Wilcox <willy@fc.hp.com>.
+
+       * lib/proc.c: Renamed the access method name from "/proc/bus/pci" to "Linux-proc".
+
+       * lib/pread.h: The hacks to support pread on various versions
+       of Linux libc moved there.
+
+       * lib/proc.c (proc_setup): The return value of snprintf() varies
+       between glibc versions, so we need to check both for a negative
+       values and for too large values.
+
+       * Removed last few references to the "Linux PCI Utilities", the
+       package is pretty cross-platform now :)
+
+2003-12-27  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test2.
+
+       * README, pciutils.lsm, pciutils.spec: Use @VERSION@ to make the
+       release scripts insert the current version. "make release" is gone.
+
+       * maint/release, maint/release.pm: Added a new system of scripts for
+       making releases including inter-version diffs etc.
+
+       * Makefile: Cleaned up.
+
+       * lib/fbsd-device.c: I patched another copy of this file by mistake,
+       this time the version checks should be right.
+
+2003-12-27  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.99-test1.
+
+       * pciutils.h, common.c, lspci.man, setpci.man, lib/internal.h:
+       Remove shadows of the syscall access method which was never
+       implemented.
+
+       * update-pciids.sh: Try to preserve permissions of the old file
+       if chmod supports --reference. Should close Debian Bug #223740.
+
+       * lib/proc.c (proc_setup): Increased path name length limit to 1024.
+       Thanks for Redhat and Mandrake for inspiration.
+
+       * lib/configure: Recognize ppc and ppc64, both have 64-bit addresses.
+       Grabbed from Redhat (Fedora) patches.
+
+2003-12-27  Martin Mares  <mj@ucw.cz>
+
+       Merged bug fixes from Debian patches:
+
+       * lspci.c (show_verbose): "Cache Line Size" should be capitalized.
+
+       * lspci.c (show_pcix_nobridge): Added a missing newline.
+
+       * lib/proc.c (proc_scan): When reading the header type, don't
+       forget to clear the topmost bit indicating that the device has
+       multiple functions.
+
+2003-12-27  Martin Mares  <mj@ucw.cz>
+
+       Updated the FreeBSD port. Thanks to Samy Al Bahra <samy@kerneled.com>
+       for the patches:
+
+       * lib/Makefile: Add ${FREEBSD_SYS} to the include path if it's defined.
+       * lib/fbsd-device.c: Select the right set of system includes according
+       to __FreeBSD_version.
+
+2003-12-27  Martin Mares  <mj@ucw.cz>
+
+       Merged support for Solaris on i386 by Bill Moore <billm@eng.sun.com>
+       and cleaned up:
+
+       * lib/configure: Recognize SunOS.
+       * lib/internal.h: Learn how to recognize byte order on SunOS.
+       * lib/i386-ports.c: Split OS-dependent I/O port access from i386-ports.c.
+       * lib/i386-io-linux.h: Linux specific part.
+       * lib/i386-io-hurd.h: GNU/Hurd specific part.
+       * lib/i386-io-sunos.h: SunOS specific part.
+
+2003-12-26  Martin Mares  <mj@ucw.cz>
+
+       * lib/header.h (PCI_*_MASK): Cast to pciaddr_t explicitly.
+
+       * lib/pci.h: Types declared in <sys/types.h> should be usable on all
+       platforms we currently support, so kill the forest of #ifdef's and
+       use them in all cases.
+
+       * lib/pci.h: Use ULONG_MASK to decide whether we should use long
+       or long long to represent a 64-bit address. Killed HAVE_LONG_ADDRESS.
+       Define format strings for addresses, port numbers and IRQ numbers
+       directly in pci.h.
+
+       * lib/proc.c (proc_scan): Use PCIADDR_T_FMT for scanf'ing addresses.
+
+2003-12-26  Marco Gerards  <metgerards@student.han.nl>
+
+       Added support for the GNU Hurd (cleaned up by Martin Mares):
+
+       * lib/configure [GNU]: Use the i386 ports for configuration access.
+       * lib/i386-ports.c: Don't call iopl() on the Hurd.
+       * lib/pci.h [OS_GNU]: Include <sys/types.h> and use it for defining
+       u8 to u32.
+
+2003-12-26  Martin Mares  <mj@ucw.cz>
+
+       * lspci.c (show_pcix_bridge, show_pcix_nobridge): Don't forget to call
+       config_fetch() to ensure that the registers have been read. Thanks to
+       Bill Wood <bill.wood@hp.com> for the patch.
+
+       * lspci.c: Ensure that failure of config_fetch() is handled correctly
+       at all places.
+
+       * lspci.man: There was one more explicit reference to /usr/share/pci.ids.
+       Changed to @SHAREDIR@. Patch from Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
+
+       * setpci.c (main): Better error messages.
+
+       * setpci.c (ex_op): The demo mode should disable only writing, not reading.
+
+       * setpci.man: The documentation was inconsistent on what should -D do.
+       Document the new behaviour.
+
+       * pciutils.h, common.c, setpci.c: Introduced a NONRET macro encapsulating
+       the GCC specific __attribute__((noreturn)) and killed the hack with
+       redefining __attribute__ on non-GCC compilers.
+
+       * Makefile: Added missing dependencies. Parallel builds work now.
+       Problem reported by Andreas Haumer <andreas@xss.co.at>, but I chose
+       a different fix.
+
+       * Makefile (MANDIR): Use `:=' instead of `=' to avoid executing the shell
+       command every time $(MANDIR) is referenced.
+
+       * lspci.c (main): The error message for `lspci -s' incorrectly mentioned
+       a `-f' switch. Reported by Steve Finney <Steve.Finney@SpirentCom.COM>.
+
+       * lib/generic.c: Removed memory leak in pci_generic_bus_scan().
+       Reported by Gary Parnes <gary_parnes@terago.com>.
+
+       * Replaced obsolete syntax of __attribute__((unused)) in the middle of
+       parameter declarations (which is no longer supported by GCC 3.1) by the
+       current syntax (attribute at the end). Thanks to pixel@mandrakesoft.com
+       for reporting this problem.
+
+       * Removed CVS $Id$ tags from all files.
+
+       * Makefile: Added some more warnings.
+
+       * setpci.c: Cleaned up mask/value code.
+
+2003-12-08 Thayne Harbaugh <tharbaugh@lnxi.com>
+
+       * setpci.c: Individual bits to be set can be specified as <value>:<mask>.
+
+2003-11-29  Martin Mares  <mj@ucw.cz>
+
+       * Imported the pciutils sources to my Arch repository. Good-bye, CVS.
+
+2003-01-04  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.11.
+
+       * Makefile: Changed configuration of installation directories --
+       all paths are now set at the top of the Makefile instead of being
+       scattered between the installation rules. The default installation
+       now goes always to /usr/local regardless of the OS as most distributions
+       already contain some version of pciutils and we don't want custom
+       installations to interfere with the default ones.
+
+       * Makefile: Removed a couple of ancient install hacks: we no longer
+       try to avoid overwriting a newer pci.ids file (users are now expected
+       to use update-ids) and we don't try to remove /etc/pci.ids (a long time
+       has passed since the last version which used it).
+
+       * Makefile: Paths to pci.ids in man pages automatically get the right path.
+
+       * Added the update-ids utility.
+
+       * lib: Removed partially implemented "syscall" access method which will
+       probably never be needed.
+
+2002-12-27  Martin Mares  <mj@ucw.cz>
+
+       * lib/nbsd-libpci.c: Cleaned up and hopefully made it endian safe.
+
+       * lib/generic.c (pci_generic_scan_bus): Added work-around for devices with
+       discontiguous numbering of functions. This is already present in the Linux
+       kernel for several years, but I forgot to update pciutils as well.
+
+2002-12-26  Martin Mares  <mj@ucw.cz>
+
+       * lib/header.h, lspci.c: Dump AGP3 flags and speeds.
+
+       * lib/pci.h, Makefile: Removed HAVE_OWN_HEADER_H. Always use our own header,
+       there is no reason to prefer the kernel version.
+
+       * lib/proc.c (proc_scan): Don't forget to initialize hdrtype.
+
+       * Added preliminary version of NetBSD support by Quentin Garnier
+       <netbsd@quatriemek.com>.
+
+2002-04-06  Martin Mares  <mj@ucw.cz>
+
+       * lspci.c: Mention "-xxx" in the help.
+
+2002-03-30  Martin Mares  <mj@ucw.cz>
+
+       * Released as 2.1.10.
+
+       * Removed pci.ids from the CVS as they are now maintained separately.
+       They are still included in the tarball, but if you are building pciutils
+       from CVS sources or you want to get a newer ID file than the one distributed,
+       just use "make update-ids" to download the most recent snapshot from
+       pciids.sf.net.
+
+       * Makefile, README: Updated accordingly.
+
+       * Makefile: Added a couple of maintenance targets.
+
+       * maint/*: Maintainer's utilities now reside here (present only in CVS,
+       not in the tarball).
+
+       * lib/names.c (parse_name_list): End-of-line comments are no longer
+       supported. Hashes are now perfectly valid in all names and they start
+       a comment only at the start of the line.
+
+2002-03-26  Martin Mares  <mj@ucw.cz>
+
+       * README: Rewritten.
+
+       * Makefile: When the currently installed pci.ids file is newer than
+       the version to be installed, don't overwrite it. Suggested by
+       Jean Delvare <khali@linux-fr.org>.
+
 2002-03-24  Martin Mares  <mj@ucw.cz>
 
        * lspci.c (show_pcix_bridge): Added PCI-X capability display.
 
 2001-11-04  Martin Mares  <mj@ucw.cz>
 
+       * Released as 2.1.9.
+
        * pci.ids: Synced with the PCI ID Repository at SourceForge
        (http://pciids.sourceforge.net/).
 
@@ -506,7 +1562,7 @@ Tue Jan 19 23:00:12 1999  Martin Mares  <mj@albireo.ucw.cz>
 
        * Started the "New Generation" branch and introduced the
        PCI library.
-       
+
        * lspci: Rewritten to use the library.
 
 Tue Jan 19 22:24:08 1999  Martin Mares  <mj@albireo.ucw.cz>
@@ -694,4 +1750,3 @@ Tue Feb  3 20:56:00 1998  Martin Mares  <mj@albireo.ucw.cz>
        (show_htype2): Stub routine.
        (scan_config): Write sensible error message if the kernel denies reading of
        upper part of the PCI config space.
-