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
library “libpci”
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
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.