PCICONFIG_READ

Section: Linux Programmer's Manual (2)
Updated: 2016-07-17
Index JM Home Page
 

名前

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 のオフセット offbuf の値を書き込む。
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) が見つからない。
ENOSYS
このシステムはこれらの呼び出しを実装していない。 (CONFIG_PCI が定義されていない)。
EOPNOTSUPP
この返り値は pciconfig_iobase() でのみ有効である。 このエラーは which の値が無効であるときに返される。
EPERM
ユーザーが CAP_SYS_ADMIN 権限を持っていない。 このエラーは pciconfig_iobase() には適用されない。
 

準拠

これらの呼び出しは Linux 特有のものであり、 Linux 2.0.26/2.1.11 から使用可能である。  

関連項目

capabilities(7)  

この文書について

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


関連キーワード

pciconfig, long, unsigned, エラー, iobase, READ, PCICONFIG, IOBASE, bus, デバイス 

Index

名前
書式
説明
返り値
エラー
準拠
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 13:30:30 GMT, January 09, 2022