Man page - inw(2)

Packages contains this manual

Available languages:

en fr pl ja ru ro de

Manual

OUTB

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

名 前

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