diff options
Diffstat (limited to 'man2/pciconfig_read.2')
-rw-r--r-- | man2/pciconfig_read.2 | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/man2/pciconfig_read.2 b/man2/pciconfig_read.2 new file mode 100644 index 000000000..f7551906f --- /dev/null +++ b/man2/pciconfig_read.2 @@ -0,0 +1,89 @@ +.\" Contributed by Niki A. Rahimi, LTC Security Development +.\" narahimi@us.ibm.com +.\" May be freely distributed. +.\" +.TH PCICONFIG_READ 2 2003-07-14 "Linux 2.4.19" "Linux Programmer's Manual" +.SH NAME +pciconfig_read, pciconfig_write, pciconfig_iobase \- pci device information handling +.SH SYNOPSIS +.nf +.B #include <pci.h> +.sp +.BI "int pciconfig_read(unsigned long " bus ", unsigned long " dfn , +.BI " unsigned long " off ", unsigned long " len ", void *" buf ); +.BI "int pciconfig_write(unsigned long " bus ", unsigned long " dfn , +.BI " unsigned long " off ", unsigned long " len ", void *" buf ); +.BI "int pciconfig_iobase(long " which ", unsigned long " bus , +.BI " unsigned long " devfn ); +.fi +.SH DESCRIPTION +.TP +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. +.TP +.BR pciconfig_read +Reads to +.I +buf +from device +.I +dev +at offset +.I +off +value. +.TP +.BR pciconfig_write +Writes from +.I +buf +to device +.I +dev +at offset +.I +off +value. +.TP +.BR 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. +.SH "RETURN VALUE" +.TP +.BR pciconfig_read +On success zero is returned. On error, -1 is returned and errno is set appropriately. +.TP +.BR pciconfig_write +On success zero is returned. On error, -1 is returned and errno is set appropriately. +.TP +.BR pciconfig_iobase +Returns information on locations of various I/O regions in physical memory according to the +.I which +value. Values for +.I which +are: IOBASE_BRIDGE_NUMBER, IOBASE_MEMORY, IOBASE_IO, IOBASE_ISA_IO, IOBASE_ISA_MEM. +.SH ERRORS +.TP +.B EINVAL +.I len +value is invalid. This does not apply to pci_iobase. +.TP +.B EIO +I/O error. +.TP +.B ENODEV +For pci_iobase, hose value is NULL? For the other calls, could not find a slot. +.TP +.B ENOSYS +The system has not implemented these calls (CONFIG_PCI not defined). +.TP +.B EOPNOTSUPP +This return value is only valid for pci_iobase. It is returned if the value for +.I +which +is invalid. +.TP +.B EPERM +User does not have the CAP_SYS_ADMIN capability. This does not apply to pci_iobase. +.SH "CONFORMING TO" +These calls are Linux specific, available since Linux 2.0.26/2.1.11. +.SH "SEE ALSO" +.BR capabilities (7) |