OUTB

Section: Linux Programmer's Manual (2)
Updated: 2020-11-01
Index JM Home Page
 

名前

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/ に書かれている。

関連キーワード

short   long   ポート   outb   outw   outl   outsb   outsw   outsl   insb   insw   insl   入出力   単位   カーネル   空間   アプリケーション   一連   語尾   バイト   ワード   内部   想定   設計   コンパイル

Linux マニュアル 一覧

関連するコマンド・関数

inb.2   inb_p.2   inl.2   inl_p.2   insb.2   insl.2
 

Index

名前
書式
説明
準拠
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:38:58 GMT, October 11, 2026