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

関連キーワード

unsigned, short, 関数, OUTB, long, addr, count, outb, ポート, outw

Linux マニュアル 一覧

[man1] [man2] [man3] [man4] [man5] [man6] [man7] [man8]
[a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t] [u] [v] [w] [x] [y] [z]

 

Index

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

This document was created by man2html, using the manual pages.
Time: 12:08:51 GMT, June 11, 2022