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 |