INB(9) INB(9) NAME inb, ins, inl, outb, outs, outl, insb, inss, insl, outsb, outss, outsl - programmed I/O SYNOPSIS int inb(int port) ushort ins(int port) ulong inl(int port) void outb(int port, int value) void outs(int port, ushort value) void outl(int port, ulong value) void insb(int port, void *address, int count) void inss(int port, void *address, int count) void insl(int port, void *address, int count) void outsb(int port, void *address, int count) void outss(int port, void *address, int count) void outsl(int port, void *address, int count) DESCRIPTION The x86 implementation provides functions to allow kernel code written in C to access the I/O address space. On sev- eral 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. Inb, ins and inl apply the corresponding hardware instruc- tion to fetch the next byte, short or long from the I/O port. Outb, outs and outl output a value to the I/O port. The remaining functions transfer count bytes, shorts, or longs using programmed I/O between a memory address and port. Functions insX copy values into memory; functions outsX copy values from memory. The count is in elements, not bytes. SOURCE /sys/src/9/pc/l.s Page 1 Plan 9 (printed 12/21/24) INB(9) INB(9) SEE ALSO dma(9) Page 2 Plan 9 (printed 12/21/24)