3 address to populate slot member.
   129     Understands PCI bus address, slot number, and/or instance number
   132 @subsection ver27 2.7 (Jan. 2016)
   134 @li configure: optionally include \$(TOP)/configure/RELEASE.local and \$(TOP)/../RELEASE.local.
   135     \$(EPICS_BASE) is no longer defined by default in configure/RELEASE and must
   136     be explicitly set in one of the possible RELEASE* files.
   137 @li Fix compile failure on vxWorks (Eric Bjorklund)
   138 @li Add missing extern "C" in epicsMMIO.h for vxWorks (Eric Bjorklund)
   139 @li In epicsMMIODef.h replace 'inline' with 'static inline' for C compatibility.
   140 @li RTEMS: handle BSPs with offset PCI addresses
   141 @li pci/linux: 
devPCIDebug>1 enables more debug output when searching/matching PCI devices.
   142 @li pci/linux: fix error preventing use of uio devices other than uio0.
   144     for debugging/development with VME devices.
   146 @subsection ver26 2.6 (May 2015)
   148 @li VCS repository moved to github.com
   149 @li Increment API version to 1.2 (was 1.0)
   150 @li epicsMMIO.h included in EPICS Base 3.15.1, not installed by this module.
   152 Work by Andrew Johnson
   154 @li Import support for vxWorks 5.5 on m68k and powerpc from EPICS Base.
   156 Work by Till Straumann
   158 @li Add PCI Config space access functions devPCIConfigRead
##() and devPCIConfigWrite##()   160     - Linux: invoke the UIO irqcontrol callback function with a 1 or 0.
   161     - vxWorks: call intEnable or intDisable (enabled by default). (Dirk Zimoch)
   165 @li Rework of the Linux PCI bus scan to support PCI domains.
   166     Previously domain 0 was used implicitly.
   167 @li Rework of the vxWorks/RTEMS PCI bus scan to allow wildcards in device search.
   168     This allows 
devPCIShow for all PCI devices like in Linux.
   169 @li Fixes for 64 bit BARs.
   170 @li vxWorks: use BAR address directly if sysBusToLocalAdrs does not support PCI.
   171 @li Changes in 
devPCIShow to get nicer output.
   173 Work by Michael Davidsaver
   177     which performs a consistency check on the size of the 
devLibPCI structure.
   178 @li provide 
bswap16() and 
bswap32() for RTEMS PPC targets.  Previously omitted.
   179 @li Change name format of Linux user "ISR" thread to include PCI BDF.
   182 @subsection ver25 2.5 (May 2014)
   184 @li Linux: possible 
string corruption in vallocPrintf()
   185       Found by Till Straumann
   186 @li vxWorks: lookup symbols including sysBusToLocalAdrs at runtime.
   187       Work by Eric and Dirk Zimoch
   188 @li RTEMS: Select no-op MMIO implementation for m68k (no special handling required)
   190 @subsection ver24 2.4 (Oct. 2012)
   192 @li Remove C++ style comments from epicsMMIODef.h and devcsr.h
   193 @li Fix Issue preventing Custom PCI bus implementation. (Found by Dan Eichel)
   194 @li Linux "ISR" thread stack size not correct (Fixed by Till Straumann)
   195 @li Linux: Previous versions expected Linux kernel modules to leave gaps for un-mappable PCI BARs (I/O Ports).
   196     However, most existing kernel modules don't do this.  Add a flag to 
devPCIToLocalAddr() to specify
   197     how a device's kernel module does mapping.  The default is to map as in previous versions.
   198     (New behavior by Till Straumann)
   201 @subsection ver23 2.3 (Apr. 2012)
   203 @li Include proper headers to enable memory barriers for vxWorks >= 6.6
   204 @li Fallback to noop when vxWorks memory barriers are not available
   205 @li Fix incorrect return code when connecting pci interrupts on vxWorks
   207 @subsection ver22 2.2 (Sept. 2011)
   209 @li linux: follow changes to /sys (needed for kernel >2.6.26)
   210 @li pci: IOC shell functions added: 
pciread()
   211 @li pci: vxworks translate PCI addresses
   212 @li Build on vxWorks 6.8  (Thanks to Andrew Johnson)
   213 @li pci: Make operations reentrant on RTEMS and vxWorks (previously was not oops.)
   214 @li pci: Fix bug with 
devPCIBarLen on RTEMS and vxWorks.
   216 @subsection ver21 2.1 (Jan. 2011)
   218 @li Fix build issue with 3.14.12 with RTEMS pc386 (found by Jim Chen from Hytec)
   219 @li Add notification of missed PCI interrupt events on Linux
   220 @li Additional arguement 'count' for 
vmeread() to show blocks of registers
   221 @li Add section to PCI Usage on x86 Port I/O
   222 @li Add section to PCI Access in Linux concerning hardware requirements
   224 @subsection ver20 2.0 (Sept. 2010)
   228 @author Michael Davidsaver <mdavidsaver@gmail.com>
   229 @author Till Straumann <strauman@slac.stanford.edu>
   230 @author Dirk Zimoch <dirk.zimoch@psi.ch>
 void pciconfread(int dmod, int offset, int count)
 
void vmeirqattach(int level, int vector, const char *itype)
 
int devPCIEnableInterrupt(const epicsPCIDevice *dev)
Enable interrupts at the device. 
 
INLINE epicsUInt32 bswap32(epicsUInt32 value)
 
void vmeread(int rawaddr, int amod, int dmod, int count)
 
int devPCIDisableInterrupt(const epicsPCIDevice *dev)
Enable interrupts at the device. 
 
#define devLibPCIRegisterDriver(TPTR)
 
INLINE epicsUInt16 bswap16(epicsUInt16 value)
 
void vmeirq(int level, int act)
 
int devPCIToLocalAddr(const epicsPCIDevice *curdev, unsigned int bar, volatile void **ppLocalAddr, unsigned int opt)
Get pointer to PCI BAR. 
 
int devLibPCIRegisterDriver2(devLibPCI *drv, size_t drvsize)
 
void devPCIShowMatch(int lvl, const char *spec, int vendor, int device)
 
int devPCIFindSpec(const epicsPCIID *idlist, const char *spec, const epicsPCIDevice **found, unsigned int opt)
PCI bus search by specification string. 
 
void vmewrite(int rawaddr, int amod, int dmod, int rawvalue)
 
void devPCIShow(int lvl, int vendor, int device, int exact)
 
int devPCIBarLen(const epicsPCIDevice *curdev, unsigned int bar, epicsUInt32 *len)
Find the size of a BAR. 
 
void pciread(int dmod, int offset, int count)