PCICONFIG_READ(2) manual page
Table of Contents
pciconfig_read, pciconfig_write, pciconfig_iobase - pci device
information handling
#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);
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 user space.
- 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.
- 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.
- 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 valid only 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().
These calls are Linux-specific, available
since Linux 2.0.26/2.1.11.
capabilities(7)
This page is part
of release 3.78 of the Linux man-pages project. A description of the project,
information about reporting bugs, and the latest version of this page,
can be found at http://www.kernel.org/doc/man-pages/.
Table of Contents