|
PCICONFIG_READ (2) | System calls | Unix Manual Pages | :man▋
NAME
pciconfig_read, pciconfig_write, pciconfig_iobase - pci device information handling
CONTENTS
Synopsis Description Errors
SYNOPSIS
#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);
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 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. | |
"RETURN VALUE"
| 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. | |
ERRORS
| ENOSYS | The system has not implemented these calls (CONFIG_PCI not defined). | | EPERM | User does not have the CAP_SYS_ADMIN capability. This does not apply to pci_iobase. | | ENODEV | For pci_iobase, hose value is NULL? For the other calls, could not find a slot. | | EINVAL | len value is invalid. This does not apply to pci_iobase. | | EIO | I/O error. | | EOPNOTSUPP | | | This return value is only valid for pci_iobase. It is returned if the value for which is invalid. | |
"CONFORMING TO"
These calls are Linux specific, available since Linux 2.0.26/2.1.11. | "Linux 2.4.19" | PCICONFIG_READ (2) | 2003-07-14 | shtml">manServer 1.07 from pciconfig_read.2 using man macros.
|