Manpages - pciconfig_read.2

Table of Contents

NAME

pciconfig_read, pciconfig_write, pciconfig_iobase - pci device information handling

SYNOPSIS

  #include <pci.h>

  int pciconfig_read(unsigned long bus, unsigned long dfn,
   unsigned long off, unsigned long len,
   unsigned char *buf);
  int pciconfig_write(unsigned long bus, unsigned long dfn,
   unsigned long off, unsigned long len,
   unsigned char *buf);
  int pciconfig_iobase(int which, unsigned long bus,
   unsigned long devfn);

DESCRIPTION

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.

RETURN VALUE

*pciconfig_read*()
On success, zero is returned. On error, -1 is returned and errno is set to indicate the error.
*pciconfig_write*()
On success, zero is returned. On error, -1 is returned and errno is set to indicate the error.
*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.

ERRORS

EINVAL
len value is invalid. This does not apply to *pciconfig_iobase*().
EIO
I/O error.
ENODEV
For *pciconfig_iobase*(), “hose” value is NULL. For the other calls, could not find a slot.
ENOSYS
The system has not implemented these calls (CONFIG_PCI not defined).
EOPNOTSUPP
This return value is valid only for *pciconfig_iobase*(). It is returned if the value for which is invalid.
EPERM
User does not have the CAP_SYS_ADMIN capability. This does not apply to *pciconfig_iobase*().

CONFORMING TO

These calls are Linux-specific, available since Linux 2.0.26/2.1.11.

SEE ALSO

*capabilities*(7)

COLOPHON

This page is part of release 5.13 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/.

Author: dt

Created: 2022-02-23 Wed 11:24