.TH INB 10.2 x86.SH NAMEinb, ins, inl, outb, outs, outl, insb, inss, insl, outsb, outss, outsl \- programmed I/O.SH SYNOPSIS.ta \w'\fLushort 'u.Bint inb(int port).PP.Bushort ins(int port).PP.Bulong inl(int port).PP.Bvoid outb(int port, int value).PP.Bvoid outs(int port, ushort value).PP.Bvoid outl(int port, ulong value).PP.Bvoid insb(int port, void *address, int count).PP.Bvoid inss(int port, void *address, int count).PP.Bvoid insl(int port, void *address, int count).PP.Bvoid outsb(int port, void *address, int count).PP.Bvoid outss(int port, void *address, int count).PP.Bvoid outsl(int port, void *address, int count).SH DESCRIPTIONThe.I x86implementation provides functions to allow kernel codewritten in C to access the I/O address space.On several other architectures such as the PowerPC and Strongarm,the platform-dependent code provides similar functions to accessdevices with an I/O space interface, even when that is memory mapped, to encourage portability of device drivers..PP.IR Inb ,.I insand.I inlapply the corresponding hardware instruction to fetch the next byte, short or longfrom the I/O.IR port ..IR Outb ,.I outsand.I outloutput a.I valueto the I/O.IR port ..PPThe remaining functions transfer.I countbytes, shorts, or longs using programmed I/O between a memory.I addressand.IR port .Functions.BI ins xcopy values into memory; functions.BI outs xcopy values from memory.The.I countis in elements, not bytes..SH SOURCE.B /os/pc/l.s.SH SEE ALSO.IR dma (10.2),.IR isaconfig (10.2)
.TH INB 10.2 x86
.SH NAME
inb, ins, inl, outb, outs, outl, insb, inss, insl, outsb, outss, outsl \- programmed I/O
.SH SYNOPSIS
.ta \w'\fLushort 'u
.B
int inb(int port)
.PP
.B
ushort ins(int port)
.PP
.B
ulong inl(int port)
.PP
.B
void outb(int port, int value)
.PP
.B
void outs(int port, ushort value)
.PP
.B
void outl(int port, ulong value)
.PP
.B
void insb(int port, void *address, int count)
.PP
.B
void inss(int port, void *address, int count)
.PP
.B
void insl(int port, void *address, int count)
.PP
.B
void outsb(int port, void *address, int count)
.PP
.B
void outss(int port, void *address, int count)
.PP
.B
void outsl(int port, void *address, int count)
.SH DESCRIPTION
The
.I x86
implementation provides functions to allow kernel code
written in C to access the I/O address space.
On several other architectures such as the PowerPC and Strongarm,
the platform-dependent code provides similar functions to access
devices with an I/O space interface, even when that is memory mapped, to encourage portability of device drivers.
.PP
.IR Inb ,
.I ins
and
.I inl
apply the corresponding hardware instruction to fetch the next byte, short or long
from the I/O
.IR port .
.IR Outb ,
.I outs
and
.I outl
output a
.I value
to the I/O
.IR port .
.PP
The remaining functions transfer
.I count
bytes, shorts, or longs using programmed I/O between a memory
.I address
and
.IR port .
Functions
.BI ins x
copy values into memory; functions
.BI outs x
copy values from memory.
The
.I count
is in elements, not bytes.
.SH SOURCE
.B /os/pc/l.s
.SH SEE ALSO
.IR dma (10.2),
.IR isaconfig (10.2)