Linux repositories inspector
Linux
2012-12-31
Aliases: inb(2), inb(2), inb(2), inb(2), inb(2), inb(2), inb(2), inb(2), inb(2), inb(2), inb(2), inb(2), inb_p(2), inb_p(2), inb_p(2), inb_p(2), inb_p(2), inb_p(2), inb_p(2), inb_p(2), inb_p(2), inb_p(2), inb_p(2), inb_p(2), inl(2), inl(2), inl(2), inl(2), inl(2), inl(2), inl(2), inl(2), inl(2), inl(2), inl(2), inl(2), inl_p(2), inl_p(2), inl_p(2), inl_p(2), inl_p(2), inl_p(2), inl_p(2), inl_p(2), inl_p(2), inl_p(2), inl_p(2), inl_p(2), insb(2), insb(2), insb(2), insb(2), insb(2), insb(2), insb(2), insb(2), insb(2), insb(2), insb(2), insb(2), insl(2), insl(2), insl(2), insl(2), insl(2), insl(2), insl(2), insl(2), insl(2), insl(2), insl(2), insl(2), insw(2), insw(2), insw(2), insw(2), insw(2), insw(2), insw(2), insw(2), insw(2), insw(2), insw(2), insw(2), inw(2), inw(2), inw(2), inw(2), inw(2), inw(2), inw(2), inw(2), inw(2), inw(2), inw(2), inw(2), inw_p(2), inw_p(2), inw_p(2), inw_p(2), inw_p(2), inw_p(2), inw_p(2), inw_p(2), inw_p(2), inw_p(2), inw_p(2), inw_p(2), outb_p(2), outb_p(2), outb_p(2), outb_p(2), outb_p(2), outb_p(2), outb_p(2), outb_p(2), outb_p(2), outb_p(2), outb_p(2), outb_p(2), outl(2), outl(2), outl(2), outl(2), outl(2), outl(2), outl(2), outl(2), outl(2), outl(2), outl(2), outl(2), outl_p(2), outl_p(2), outl_p(2), outl_p(2), outl_p(2), outl_p(2), outl_p(2), outl_p(2), outl_p(2), outl_p(2), outl_p(2), outl_p(2), outsb(2), outsb(2), outsb(2), outsb(2), outsb(2), outsb(2), outsb(2), outsb(2), outsb(2), outsb(2), outsb(2), outsb(2), outsl(2), outsl(2), outsl(2), outsl(2), outsl(2), outsl(2), outsl(2), outsl(2), outsl(2), outsl(2), outsl(2), outsl(2), outsw(2), outsw(2), outsw(2), outsw(2), outsw(2), outsw(2), outsw(2), outsw(2), outsw(2), outsw(2), outsw(2), outsw(2), outw(2), outw(2), outw(2), outw(2), outw(2), outw(2), outw(2), outw(2), outw(2), outw(2), outw(2), outw(2), outw_p(2), outw_p(2), outw_p(2), outw_p(2), outw_p(2), outw_p(2), outw_p(2), outw_p(2), outw_p(2), outw_p(2), outw_p(2), outw_p(2)

manpages-ja-dev

Japanese version of the manual pages (for developers)

man-pages-ja

Japanese man (manual) pages from the Japanese Manual Project

manpages-dev

Manual pages about using GNU/Linux for development

man-pages

Linux kernel and C library user-space interface documentation

名前

outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ポート入出力

書式

#include <sys/io.h>

unsigned char inb(unsigned short int port); unsigned char inb_p(unsigned short int port); unsigned short int inw(unsigned short int port); unsigned short int inw_p(unsigned short int port); unsigned int inl(unsigned short int port); unsigned int inl_p(unsigned short int port);
void outb(unsigned char value, unsigned short int port); void outb_p(unsigned char value, unsigned short int port); void outw(unsigned short int value, unsigned short int port); void outw_p(unsigned short int value, unsigned short int port); void outl(unsigned int value, unsigned short int port); void outl_p(unsigned int value, unsigned short int port);
void insb(unsigned short int port, void *addr, unsigned long int count); void insw(unsigned short int port, void *addr, unsigned long int count); void insl(unsigned short int port, void *addr, unsigned long int count); void outsb(unsigned short int port, const void *addr, unsigned long int count); void outsw(unsigned short int port, const void *addr, unsigned long int count); void outsl(unsigned short int port, const void *addr, unsigned long int count);

説明

この一連の関数はポートに対する低レベルの入出力に使用する。 out* 関数はポート出力、in* 関数はポート入力を行う。 語尾に b がついている関数はバイト単位、w がついている関数はワード単位である。 _p がついている関数は I/O が終了するまで待つ。
これらの関数はもともとカーネル内部での使用を想定して設計されているが、 ユーザー空間からでも使用できる。
-O-O2 などを指定してコンパイルしなければならない。 これらの関数はインラインマクロとして定義されており、 最適化を行わないと関数の展開が行われず、 リンクの時に「解決できない参照(unresolved reference)」が発生する。
ユーザー空間のアプリケーションが I/O ポートにアクセスすることを カーネルに教えるために ioperm(2) もしくは iopl(2) を使用すること。これを忘れるとアプリケーションはセグメンテーション違反 (segmentation fault) を受けとることになる。

準拠

outb() とその仲間はハードウェア特有である。 value 引数が最初に渡され、 port 引数が二番目に渡される。 この順序はほとんどの DOS での実装とは逆である。

関連項目

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。

REFERENCED BY

⇧ Top