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.
Reads to buf
from device dev
at offset off
value.
Writes from buf
to device dev
at offset
off
value.
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.
On success, zero is returned. On error, -1 is returned and
errno
is set appropriately.
On success, zero is returned. On error, -1 is returned and
errno
is set appropriately.
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.
len
value is invalid. This does not apply to
pciconfig_iobase().
I/O error.
For pciconfig_iobase(), "hose" value is NULL. For the other calls, could not find a slot.
The system has not implemented these calls (CONFIG_PCI not defined).
This return value is valid only for
pciconfig_iobase(). It is returned if the value for
which
is invalid.
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 5.10 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
https://www.kernel.org/doc/man-pages/.