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