Man Linux: Main Page and Category List

NAME

       pciconfig_read,   pciconfig_write,   pciconfig_iobase   -   pci  device
       information handling

SYNOPSIS

       #include <pci.h>

       int pciconfig_read(unsigned long bus, unsigned long dfn,
                 unsigned long off, unsigned long len, void *buf);
       int pciconfig_write(unsigned long bus, unsigned long dfn,
                 unsigned long off, unsigned long len, void *buf);
       int pciconfig_iobase(long which, unsigned long bus,
                 unsigned long devfn);

DESCRIPTION

       Most of the interaction with PCI devices  is  already  handled  by  the
       kernel  PCI  layer, and thus these calls should not normally need to be
       accessed from userspace.

       pciconfig_read()
              Reads to buf from device dev at offset off value.

       pciconfig_write()
              Writes from buf to device dev at offset off value.

       pciconfig_iobase()
              You pass it a bus/devfn pair and  get  a  physical  address  for
              either  the  memory  offset  (for  things  like  prep,  this  is
              0xc0000000), the IO base for PIO cycles, or  the  ISA  holes  if
              any.

RETURN VALUE

       pciconfig_read()
              On success zero is returned.  On error, -1 is returned and errno
              is set appropriately.

       pciconfig_write()
              On success zero is returned.  On error, -1 is returned and errno
              is set appropriately.

       pciconfig_iobase()
              Returns  information  on  locations  of  various  I/O regions in
              physical memory according to the which value.  Values for  which
              are:     IOBASE_BRIDGE_NUMBER,     IOBASE_MEMORY,     IOBASE_IO,
              IOBASE_ISA_IO, IOBASE_ISA_MEM.

ERRORS

       EINVAL len   value   is   invalid.    This   does    not    apply    to
              pciconfig_iobase().

       EIO    I/O error.

       ENODEV For  pciconfig_iobase(),  "hose"  value  is NULL.  For the other
              calls, could not find a slot.

       ENOSYS The system has  not  implemented  these  calls  (CONFIG_PCI  not
              defined).

       EOPNOTSUPP
              This  return  value is only valid for pciconfig_iobase().  It is
              returned if the value for which is invalid.

       EPERM  User does not have the CAP_SYS_ADMIN capability.  This does  not
              apply to pciconfig_iobase().

CONFORMING TO

       These calls are Linux-specific, available since Linux 2.0.26/2.1.11.

SEE ALSO

       capabilities(7)

COLOPHON

       This  page  is  part of release 3.24 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at http://www.kernel.org/doc/man-pages/.