Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       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 port);
       unsigned char inb_p(unsigned short port);
       unsigned short inw(unsigned short port);
       unsigned short inw_p(unsigned short port);
       unsigned int inl(unsigned short port);
       unsigned int inl_p(unsigned short port);

       void outb(unsigned char value, unsigned short port);
       void outb_p(unsigned char value, unsigned short port);
       void outw(unsigned short value, unsigned short port);
       void outw_p(unsigned short value, unsigned short port);
       void outl(unsigned int value, unsigned short port);
       void outl_p(unsigned int value, unsigned short port);

       void insb(unsigned short port, void *addr,
                  unsigned long count);
       void insw(unsigned short port, void *addr,
                  unsigned long count);
       void insl(unsigned short port, void *addr,
                  unsigned long count);
       void outsb(unsigned short port, const void *addr,
                  unsigned long count);
       void outsw(unsigned short port, const void *addr,
                  unsigned long count);
       void outsl(unsigned short port, const void *addr,
                  unsigned long count);

説明

       この一連の関数はポートに対する低レベルの入出力に使用する。 out* 関数はポート出力、in*  関数はポート入力を
       行う。  語尾に b がついている関数はバイト単位、w がついている関数はワード単位である。 _p がついている関数
       は I/O が終了するまで待つ。

       これらの関数はもともとカーネル内部での使用を想定して設計されているが、 ユーザー空間からでも使用できる。

       -O-O2  などを指定してコンパイルしなければならない。  これらの関数はインラインマクロとして定義されてお
       り、  最適化を行わないと関数の展開が行われず、 リンクの時に「解決できない参照(unresolved reference)」が発
       生する。

       ユーザー空間のアプリケーションが I/O ポートにアクセスすることを カーネルに教えるために ioperm(2)   もしく
       は iopl(2) を使用すること。これを忘れるとアプリケーションはセグメンテーション違反 (segmentation fault) を
       受けとることになる。

準拠

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

関連項目

       ioperm(2), iopl(2)

この文書について

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