| PCI(3) | Library Functions Manual | PCI(3) | 
NAME
 pci — library interface for PCI bus access
LIBRARY
 PCI Bus Access Library (libpci, -lpci)
SYNOPSIS
 #include <pci.h>
int
pcibus_conf_read(int pcifd, u_int bus, u_int dev, u_int func, u_int reg, pcireg_t *valp);
int
pcibus_conf_write(int pcifd, u_int bus, u_int dev, u_int func, u_int reg, pcireg_t val);
int
pcidev_conf_read(int devfd, u_int reg, pcireg_t *valp);
int
pcidev_conf_write(int devfd, u_int reg, pcireg_t val);
char *
pci_findvendor(pcireg_t id_reg);
void
pci_devinfo(pcireg_t id_reg, pcireg_t class_reg, char *devinfo, size_t len);
void
pci_conf_print(int pcifd, u_int bus, u_int dev, u_int func);
 
DESCRIPTION
 The 
pci library provides support for accessing the PCI bus by user programs.
These functions are available in the libpci library. Programs should be linked with -lpci.
 
CONFIGURATION SPACE FUNCTIONS
 The following functions are used to access PCI configuration space:
- 
pcibus_conf_read()
- 
Access the PCI configuration register reg on the device located at bus, dev, func, and place the result in *valp. pcifd must be an open file descriptor to a PCI bus within the target PCI domain.
- 
pcibus_conf_write()
- 
Write the value specified by val into the PCI configuration register reg on the device located at bus, dev, func. pcifd must be an open file descriptor to a PCI bus within the target PCI domain.
- 
pcidev_conf_read()
- 
Access the PCI configuration register reg on the device associated with the open file descriptor devfd and place the result in *valp.
- 
pcidev_conf_write()
- 
Write the value specified by val into the PCI configuration register reg on the device associated with the open file descriptor devfd.
 
MISCELLANEOUS FUNCTIONS
 The following miscellaneous functions are available:
- 
pci_findvendor()
- 
Return an ASCII description of the PCI vendor in the PCI ID register id_reg.
- 
pci_devinfo()
- 
Return an ASCII description of the PCI vendor, PCI product, and PCI class specified by the PCI ID register id_reg and PCI class ID register class_reg. The description is placed into the buffer pointed to by devinfo; the size of that buffer is specified in len.
- 
pci_conf_print()
- 
Print the PCI configuration information for the device located at bus, dev, func. pcifd must be an open file descriptor to a PCI bus within the target PCI domain.
 
RETURN VALUES
 The 
pcibus_conf_read(), 
pcibus_conf_write(), 
pcidev_conf_read(), and 
pcidev_conf_write() functions return 0 on success and -1 on failure.
The pci_findvendor() function returns NULL if the PCI vendor description cannot be found.
 
HISTORY
 The pcibus_conf_read(), pcibus_conf_write(), pcidev_conf_read(), pcidev_conf_write(), pci_findvendor(), pci_devinfo(), and pci_conf_print() functions first appeared in NetBSD 1.6.