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 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.
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.
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 only valid 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
().