inb - Man Page
access I/O ports
Synopsis
inb ADDRESS inw ADDRESS inl ADDRESS outb ADDRESS DATA outw ADDRESS DATA outl ADDRESS DATA
Examples
inb 0x278 outw 0x440 0xffff
Description
These commands enable command line and script access directly to I/O ports on PC hardware.
The inb
, inw
and inl
commands perform an input (read) operation on the given I/O port, and print the result.
The outb
, outw
and outl
commands perform an output (write) operation to the given I/O port, sending the given data. Note that the order of the parameters is ADDRESS DATA.
The size of the operation is selected according to the suffix, with b
meaning byte, w
meaning word (16 bits) and l
meaning long (32 bits).
Port numbers are in the range 0-0xffff. We don't support access to memory mapped devices.
Hexadecimal numbers (prefixed by 0x
), decimal numbers, and octal numbers (prefixed by 0
), are allowed as parameters.
Return from “in” Operations
The value read from the port by an "in" operation is normally printed in decimal.
Use the --hex
option to print the result as hexadecimal (0x
prefix is NOT printed).
Use the --code
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.
Type and Size of Operation
The type and size of the operation is normally determined by the name of the command, eg. inb
is a read operation of 1 byte.
You can override this by using the --read
, --write
and/or --size N
options. For --size N
, N
should be 1
, 2
or 4
meaning byte, word and long respectively.
Permissions
You would normally need to be root or have the CAP_SYS_RAWIO
capability in order to run these commands.
Warning
Using these commands can cause Bad Things to happen to your hardware.
See Also
iopl(2), mem(4), <http://et.redhat.com/~rjones/ioport>, <http://www.faqs.org/docs/Linux-mini/IO-Port-Programming.html>.
Authors
Richard W.M. Jones <rjones @ redhat . com>
Copyright
(C) Copyright 2009 Red Hat Inc., <http://et.redhat.com/~rjones/ioport>.
This program is free software; 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 the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Referenced By
The man pages inl(1), inw(1), outb(1), outl(1) and outw(1) are aliases of inb(1).