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
.
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
().
This page is part of release 4.07 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/.
Contributed by Niki A. Rahimi, LTC Security Development narahimius.ibm.com %%%LICENSE_START(FREELY_REDISTRIBUTABLE) May be freely distributed and modified. %%%LICENSE_END |