ИМЯ

pciconfig_read, pciconfig_write, pciconfig_iobase - работа с информацией устройства PCI

LIBRARY

Standard C library ( libc, -lc)

СИНТАКСИС

#include <pci.h>
int pciconfig_read(unsigned long bus, unsigned long dfn,
                   unsigned long off, unsigned long len,
                   unsigned char *buf);
int pciconfig_write(unsigned long bus, unsigned long dfn,
                   unsigned long off, unsigned long len,
                   unsigned char *buf);
int pciconfig_iobase(int which, unsigned long bus,
                   unsigned long devfn);

ОПИСАНИЕ

Всё взаимодействие с устройствами PCI, в основном, уже выполнено в ядре на уровне PCI, и поэтому данные вызовы, обычно, ненужны при вызове из пользовательского пространства.
pciconfig_read()
Выполняет чтение в буфер buf из устройства dev со смещением off.
pciconfig_write()
Выполняет запись буфера buf в устройство dev со смещением off.
pciconfig_iobase()
Принимает пару шина/функция_устройства и возвращает физический адрес или смещения в памяти (для таких вещей как prep, это 0xc0000000), базы ввода-вывода для циклов PIO, или промежутки (holes) ISA, если они есть.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

pciconfig_read()
On success, zero is returned. On error, -1 is returned and errno is set to indicate the error.
pciconfig_write()
On success, zero is returned. On error, -1 is returned and errno is set to indicate the error.
pciconfig_iobase()
Возвращает информацию о расположении различных областей ввода-вывода в физической памяти согласно значению which. Значениями which могут быть: IOBASE_BRIDGE_NUMBER, IOBASE_MEMORY, IOBASE_IO, IOBASE_ISA_IO, IOBASE_ISA_MEM.

ОШИБКИ

EINVAL
Неправильное значение len. Не применимо к pciconfig_iobase().
EIO
Ошибка ввода-вывода.
ENODEV
Для pciconfig_iobase() значение «рукава (hose)» равно NULL. Для других вызовов не удаётся найти слот.
ENOSYS
Данные вызовы в системе не реализованы (не определён макрос CONFIG_PCI).
EOPNOTSUPP
Данное значение верно только для pciconfig_iobase(). Возвращается, если указано неверное значение which.
EPERM
Пользователь не имеет мандата CAP_SYS_ADMIN. Не применимо к pciconfig_iobase().

СТАНДАРТЫ

Данные вызовы есть только в Linux, они доступны начиная с версии 2.0.26/2.1.11.

СМ. ТАКЖЕ

capabilities(7)

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Alexey, Azamat Hackimov <[email protected]>, kogamatranslator49 <[email protected]>, Kogan, Max Is <[email protected]>, Yuri Kozlov <[email protected]> и Иван Павлов <[email protected]>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на [email protected]

Recommended readings

Pages related to pciconfig_iobase you should read also:

Questions & Answers

Helpful answers and articles about pciconfig_iobase you may found on these sites:
Stack Overflow Server Fault Super User Unix & Linux Ask Ubuntu Network Engineering DevOps Raspberry Pi Webmasters Google Search