-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
.\" Copyright (c) 1995 Paul Gortmaker
.\" (gpg109@rsphy1.anu.edu.au)
.\" Wed Nov 29 10:58:54 EST 1995
.\"
+.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
-.\"
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
.\"
-.TH OUTB 2 1995-11-29 "Linux" "Linux Programmer's Manual"
+.TH OUTB 2 2012-12-31 "Linux" "Linux Programmer's Manual"
.SH NAME
outb, outw, outl, outsb, outsw, outsl,
inb, inw, inl, insb, insw, insl,
outb_p, outw_p, outl_p, inb_p, inw_p, inl_p \- port I/O
+.SH SYNOPSIS
+.nf
+.B #include <sys/io.h>
+
+.BI "unsigned char inb(unsigned short int " port );
+.BI "unsigned char inb_p(unsigned short int " port );
+.BI "unsigned short int inw(unsigned short int " port );
+.BI "unsigned short int inw_p(unsigned short int " port );
+.BI "unsigned int inl(unsigned short int " port );
+.BI "unsigned int inl_p(unsigned short int " port );
+
+.BI "void outb(unsigned char " value ", unsigned short int " port );
+.BI "void outb_p(unsigned char " value ", unsigned short int " port );
+.BI "void outw(unsigned short int " value ", unsigned short int " port );
+.BI "void outw_p(unsigned short int " value ", unsigned short int " port );
+.BI "void outl(unsigned int " value ", unsigned short int " port );
+.BI "void outl_p(unsigned int " value ", unsigned short int " port );
+
+.BI "void insb(unsigned short int " port ", void *" addr ,
+.BI " unsigned long int " count );
+.BI "void insw(unsigned short int " port ", void *" addr ,
+.BI " unsigned long int " count );
+.BI "void insl(unsigned short int " port ", void *" addr ,
+.BI " unsigned long int " count );
+.BI "void outsb(unsigned short int " port ", const void *" addr ,
+.BI " unsigned long int " count );
+.BI "void outsw(unsigned short int " port ", const void *" addr ,
+.BI " unsigned long int " count );
+.BI "void outsl(unsigned short int " port ", const void *" addr ,
+.BI " unsigned long int " count );
+.fi
.SH DESCRIPTION
This family of functions is used to do low-level port input and output.
The out* functions do port output, the in* functions do port input;
.\" in addition to that given in
.\" .BR outb (9).
-You compile with \fB\-O\fP or \fB\-O2\fP or similar.
+You must compile with \fB\-O\fP or \fB\-O2\fP or similar.
The functions
are defined as inline macros, and will not be substituted in without
optimization enabled, causing unresolved references at link time.
I/O ports in question.
Failure to do this will cause the application
to receive a segmentation fault.
-.SH "CONFORMING TO"
+.SH CONFORMING TO
.BR outb ()
and friends are hardware-specific.
The
.I port
argument is passed second,
which is the opposite order from most DOS implementations.
-.SH "SEE ALSO"
+.SH SEE ALSO
.BR ioperm (2),
.BR iopl (2)
+.SH COLOPHON
+This page is part of release 3.65 of the Linux
+.I man-pages
+project.
+A description of the project,
+and information about reporting bugs,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.