.\" Contributed by Niki A. Rahimi, LTC Security Development
.\" narahimi@us.ibm.com
-.\" May be freely distributed.
.\"
-.TH PCICONFIG_READ 2 2003-07-14 "Linux" "Linux Programmer's Manual"
+.\" %%%LICENSE_START(FREELY_REDISTRIBUTABLE)
+.\" May be freely distributed and modified.
+.\" %%%LICENSE_END
+.\"
+.TH PCICONFIG_READ 2 2016-07-17 "Linux" "Linux Programmer's Manual"
.SH NAME
pciconfig_read, pciconfig_write, pciconfig_iobase \- pci device information handling
.SH SYNOPSIS
.nf
.B #include <pci.h>
-.sp
+.PP
.BI "int pciconfig_read(unsigned long " bus ", unsigned long " dfn ,
-.BI " unsigned long " off ", unsigned long " len ", void *" buf );
+.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 " unsigned long " off ", unsigned long " len ", void *" buf );
.BI "int pciconfig_iobase(long " which ", unsigned long " bus ,
-.BI " unsigned long " devfn );
+.BI " unsigned long " devfn );
.fi
.SH DESCRIPTION
.PP
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.
+and thus these calls should not normally need to be accessed from user space.
.TP
.BR pciconfig_read ()
Reads to
-.I
-buf
+.I buf
from device
-.I
-dev
+.I dev
at offset
-.I
-off
+.I off
value.
.TP
.BR pciconfig_write ()
Writes from
-.I
-buf
+.I buf
to device
-.I
-dev
+.I dev
at offset
-.I
-off
+.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"
+.SH RETURN VALUE
.TP
.BR pciconfig_read ()
-On success zero is returned.
-On error, \-1 is returned and errno is set appropriately.
+On success, zero is returned.
+On error, \-1 is returned and
+.I errno
+is set appropriately.
.TP
.BR pciconfig_write ()
-On success zero is returned.
-On error, \-1 is returned and errno is set appropriately.
+On success, zero is returned.
+On error, \-1 is returned and
+.I errno
+is set appropriately.
.TP
.BR pciconfig_iobase ()
-Returns information on locations of various I/O
+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.
+are:
+.BR IOBASE_BRIDGE_NUMBER ,
+.BR IOBASE_MEMORY ,
+.BR IOBASE_IO ,
+.BR IOBASE_ISA_IO ,
+.BR IOBASE_ISA_MEM .
.SH ERRORS
.TP
.B EINVAL
.B ENODEV
For
.BR pciconfig_iobase (),
-"hose" value is NULL?
+"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).
+The system has not implemented these calls
+.RB ( CONFIG_PCI
+not defined).
.TP
.B EOPNOTSUPP
-This return value is only valid for
+This return value is valid only for
.BR pciconfig_iobase ().
It is returned if the value for
-.I
-which
+.I which
is invalid.
.TP
.B EPERM
-User does not have the \fBCAP_SYS_ADMIN\fI capability.
+User does not have the
+.B CAP_SYS_ADMIN
+capability.
This does not apply to
.BR pciconfig_iobase ().
-.SH "CONFORMING TO"
-These calls are Linux specific, available since Linux 2.0.26/2.1.11.
-.SH "SEE ALSO"
+.SH CONFORMING TO
+These calls are Linux-specific, available since Linux 2.0.26/2.1.11.
+.SH SEE ALSO
.BR capabilities (7)