pci_find_device()

Найти устройство PCI с заданным идентификатором устройства и идентификатором производителя

Прототип:

#include <hw/pci.h>
int pci_find_device( unsigned device,
unsigned vendor,
unsigned index,
unsigned *bus,
unsigned *dev_func );

Аргументы:

device
Идентификатор устройства. Список поддерживаемых идентификаторов устройств см. в <hw/pci_devices.h>.
vendor
Идентификатор производителя. Список поддерживаемых идентификаторов производителей см. в <hw/pci_devices.h>.
index
Индекс (n) искомого устройства или функции.
bus
Указатель на место, где функция может хранить номер шины найденного устройства или функции.
dev_func
Указатель на место, где функция может хранить идентификатор устройства или функции n-го устройства или функции, найденной с указанными идентификаторами устройства и производителя. Номер устройства указывается в битах от 7 до 3, а номер функции в битах от 2 до 0.

Библиотека:

libc

Описание:

Функция pci_find_device() возвращает местоположение n-го PCI-устройства, имеющего указанный идентификаторы устройства и производителя.


Note: Необходимо добиться успешного выполнения функции pci_attach() перед вызовом любой другой функции PCI.

Имеется возможность найти все устройства с одинаковыми идентификаторами устройства и производителя, последовательно вызывая эту функцию, начиная с индекса 0 и увеличивая его до тех пор, пока не будет возвращено PCI_DEVICE_NOT_FOUND.

Возвращаемое значение:

PCI_DEVICE_NOT_FOUND
Устройство или функция не найдены.
PCI_SUCCESS
Устройство или функция найдены.
-1
Функция pci_attach() не вызывалась ранее, или вызов не был успешным.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

pci_attach(), pci_attach_device(), pci_detach(), pci_detach_device(), pci_find_class(), pci_present(), pci_read_config(), pci_read_config8(), pci_read_config16(), pci_read_config32(), pci_rescan_bus(), pci_write_config(), pci_write_config8(), pci_write_config16(), pci_write_config32()




Предыдущий раздел: Описание API системной библиотеки