Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
PCI(3) Library Functions Manual PCI(3) NAME pci, pcibus_conf_read, pcibus_conf_write, pcidev_conf_read, pcidev_conf_write, pci_findvendor, pci_devinfo, pci_conf_print, pci_drvname, pci_drvnameonbus - library interface for PCI bus access LIBRARY PCI Bus Access Library (libpci, -lpci) SYNOPSIS #include <pci.h> int pcibus_conf_read(int pcifd, unsigned int bus, unsigned int dev, unsigned int func, unsigned int reg, pcireg_t *valp); int pcibus_conf_write(int pcifd, unsigned int bus, unsigned int dev, unsigned int func, unsigned int reg, pcireg_t val); int pcidev_conf_read(int devfd, unsigned int reg, pcireg_t *valp); int pcidev_conf_write(int devfd, unsigned int reg, pcireg_t val); char * pci_findvendor(pcireg_t id_reg); void pci_devinfo(pcireg_t id_reg, pcireg_t class_reg, int showclass, char *devinfo, size_t len); void pci_conf_print(int pcifd, unsigned int bus, unsigned int dev, unsigned int func); int pci_drvname(int pcifd, unsigned int dev, unsigned int func, char *drvname, size_t len); int pci_drvnameonbus(int pcifd, u_int bus, u_int dev, u_int func, char *drvname, size_t len); 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. If showclass is not 0, the class, subclass and interface are added into the buffer. 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. pci_drvname() For the PCI bus opened on pcifd, return the driver name for dev and func into drvname using len as the buffer length. pci_drvnameonbus() Just like pci_drvname() but also allows looking up via PCI bus number. RETURN VALUES The pcibus_conf_read(), pcibus_conf_write(), pcidev_conf_read(), pcidev_conf_write(), pci_devinfo(), and pci_drvname() functions return 0 on success and -1 on failure. The pci_findvendor() function returns NULL if the PCI vendor description cannot be found. SEE ALSO pci(4) 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. The pci_drvname() function first appeared in NetBSD 7.0. NetBSD 10.99 September 23, 2016 NetBSD 10.99