ИМЯ 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, в основном, уже выполнено в ядре на уровне PCI, и поэтому данные вызовы, обычно, ненужны при вызове из пользовательского пространства.
pciconfig_read() Выполняет чтение в буфер buf из устройства dev со смещением off.
pciconfig_write() Выполняет запись буфера buf в устройство dev со смещением off.
pciconfig_iobase() Принимает пару шина/функция_устройства и возвращает физический адрес или смещения в памяти (для таких вещей как prep, это 0xc0000000), базы ввода-вывода для циклов PIO, или промежутки (holes) ISA, если они есть.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ pciconfig_read() При успешном выполнении возвращается ноль. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
pciconfig_write() При успешном выполнении возвращается ноль. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
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(). Возвращается, если
capabilities(7)
|