名 前
pciconfig_read, pciconfig_write, pciconfig_iobase − pci デ バ イ ス 情 報 を 扱 う
書 式
#include <pci.h>
int
pciconfig_read(unsigned long bus, unsigned
long dfn,
unsigned long off, unsigned long
len, void *buf);
int pciconfig_write(unsigned long bus,
unsigned long dfn,
unsigned long off, unsigned long
len, void *buf);
int pciconfig_iobase(long which, unsigned
long bus,
unsigned long devfn);
説 明
PCI デ
バ イ ス と の や
り 取 り (interaction) は カ
ー ネ ル PCI レ イ ヤ
で す で に 処 理
さ れ て い る の
で 、 通 常 は こ
ら ら の 関 数 を
ユ ー ザ ー 空 間
か ら ア ク セ ス
す る 必 要 は な
い 。
pciconfig_read() デ バ イ ス
dev の オ フ セ ッ
ト off の 値 を buf
に 読 み 込 む 。
pciconfig_write() デ バ イ ス
dev の オ フ セ ッ
ト off に buf の 値
を 書 き 込 む 。
pciconfig_iobase()
bus/devfn ペ ア を こ の 関 数 に 渡 し 、 メ モ リ ー オ フ セ ッ ト (prep の よ う な も の で は 、 こ の 値 は 0xc0000000 で あ る ) と PIO サ イ ク ル の IO ベ ー ス の 物 理 ア ド レ ス を 取 得 す る 。 ま た 、 も し あ る な ら ば ISA hole の 物 理 ア ド レ ス を 取 得 す る 。
返 り 値
pciconfig_read()
成 功 し た 場 合
、 0 が 返 さ れ る
。 エ ラ ー の 場
合 、 −1 が 返 さ
れ 、 errno が 適 切
に 設 定 さ れ る
。
pciconfig_write() 成 功 し た
場 合 、 0 が 返 さ
れ る 。 エ ラ ー
の 場 合 、 −1 が
返 さ れ 、 errno が
適 切 に 設 定 さ
れ る 。
pciconfig_iobase()
which の 値 に 基 づ い て 、 物 理 メ モ リ ー 内 の 様 々 な I/O 領 域 の 位 置 情 報 が 返 さ れ る 。 which の 値 は 、 IOBASE_BRIDGE_NUMBER, IOBASE_MEMORY, IOBASE_IO, IOBASE_ISA_IO, IOBASE_ISA_MEM で あ る 。
エ ラ ー
EINVAL |
len の 値 が 無 効 で あ る 。 こ の エ ラ ー は pciconfig_iobase() に は 適 用 さ れ な い 。 | ||||||
EIO |
I/O エ ラ ー 。 | ||||||
ENODEV |
pciconfig_iobase() の 場 合 、 で ホ ー ス (hose) の 値 が NULL で あ る 。 他 の 呼 び 出 し の 場 合 、 ス ロ ッ ト (slot) が 見 つ か ら な い 。 こ の シ ス テ ム は こ れ ら の 呼 び 出 し を 実 装 し て い な い 。 (CONFIG_PCI が 定 義 さ れ て い な い )。 EOPNOTSUPP こ の 返 り 値 は pciconfig_iobase() で の み 有 効 で あ る 。 こ の エ ラ ー は which の 値 が 無 効 で あ る と き に 返 さ れ る 。
pciconfig_iobase() に は 適 用 さ れ な い 。 準 拠こ れ ら の 呼 び 出 し は Linux 特 有 の も の で あ り 、 Linux 2.0.26/2.1.11 か ら 使 用 可 能 で あ る 。 関 連 項 目こ の 文 書 に つ い てこ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。 |