inb man page

inb, outb, inw, outw, inl, outl — 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>

Referenced By

The man pages inl(1), inw(1), outb(1), outl(1) and outw(1) are aliases of inb(1).

2019-07-25 ioport-1.2 I/O Ports