.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "INB 1" .TH INB 1 "2019-08-08" "ioport-1.2" "I/O Ports" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" inb, outb, inw, outw, inl, outl \- access I/O ports .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 6 \& inb ADDRESS \& inw ADDRESS \& inl ADDRESS \& outb ADDRESS DATA \& outw ADDRESS DATA \& outl ADDRESS DATA .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" .Vb 2 \& inb 0x278 \& outw 0x440 0xffff .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These commands enable command line and script access directly to I/O ports on \s-1PC\s0 hardware. .PP The \f(CW\*(C`inb\*(C'\fR, \f(CW\*(C`inw\*(C'\fR and \f(CW\*(C`inl\*(C'\fR commands perform an input (read) operation on the given I/O port, and print the result. .PP The \f(CW\*(C`outb\*(C'\fR, \f(CW\*(C`outw\*(C'\fR and \f(CW\*(C`outl\*(C'\fR commands perform an output (write) operation to the given I/O port, sending the given data. Note that the order of the parameters is \s-1ADDRESS DATA.\s0 .PP The size of the operation is selected according to the suffix, with \&\f(CW\*(C`b\*(C'\fR meaning byte, \f(CW\*(C`w\*(C'\fR meaning word (16 bits) and \f(CW\*(C`l\*(C'\fR meaning long (32 bits). .PP Port numbers are in the range 0\-0xffff. We don't support access to memory mapped devices. .PP Hexadecimal numbers (prefixed by \f(CW\*(C`0x\*(C'\fR), decimal numbers, and octal numbers (prefixed by \f(CW0\fR), are allowed as parameters. .ie n .SH "RETURN FROM ""IN"" OPERATIONS" .el .SH "RETURN FROM ``IN'' OPERATIONS" .IX Header "RETURN FROM IN OPERATIONS" The value read from the port by an \*(L"in\*(R" operation is normally printed in decimal. .PP Use the \f(CW\*(C`\-\-hex\*(C'\fR option to print the result as hexadecimal (\f(CW\*(C`0x\*(C'\fR prefix is \s-1NOT\s0 printed). .PP Use the \f(CW\*(C`\-\-code\*(C'\fR option to turn the result into an exit status. Note that Unix/shell can only reliably return exit status in the range 0\-0x7f, so this is not particularly useful in practice. .SH "TYPE AND SIZE OF OPERATION" .IX Header "TYPE AND SIZE OF OPERATION" The type and size of the operation is normally determined by the name of the command, eg. \f(CW\*(C`inb\*(C'\fR is a read operation of 1 byte. .PP You can override this by using the \f(CW\*(C`\-\-read\*(C'\fR, \f(CW\*(C`\-\-write\*(C'\fR and/or \&\f(CW\*(C`\-\-size N\*(C'\fR options. For \f(CW\*(C`\-\-size N\*(C'\fR, \f(CW\*(C`N\*(C'\fR should be \f(CW1\fR, \f(CW2\fR or \&\f(CW4\fR meaning byte, word and long respectively. .SH "PERMISSIONS" .IX Header "PERMISSIONS" You would normally need to be root or have the \f(CW\*(C`CAP_SYS_RAWIO\*(C'\fR capability in order to run these commands. .SH "WARNING" .IX Header "WARNING" Using these commands can cause Bad Things to happen to your hardware. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBiopl\fR\|(2), \&\fBmem\fR\|(4), , . .SH "AUTHORS" .IX Header "AUTHORS" Richard W.M. Jones .SH "COPYRIGHT" .IX Header "COPYRIGHT" (C) Copyright 2009 Red Hat Inc., . .PP This program is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .PP This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \&\s-1GNU\s0 General Public License for more details. .PP You should have received a copy of the \s-1GNU\s0 General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, \s-1MA 02139, USA.\s0