pci_find_class()

Найти устройства со специфичным класс-кодом

Прототип:

#include <hw/pci.h>
int pci_find_class( unsigned long class_code,
unsigned index,
unsigned *bus,
unsigned *dev_func );

Аргументы:

class_code
Класс устройства или функции, который необходимо найти. Для списка кодов классов см. <hw/pci.h>. Необходимо использовать ИЛИ, указывая вместе код класса и код подкласса (например, PCI_CLASS_DISPLAY | PCI_SUBCLASS_DISPLAY_XGA).
index
Индекс устройства или функции, который необходимо найти: 0 для первого, 1 для второго и так далее.
bus
Номер шины в диапазоне [0...255].
dev_func
Номер устройства или функции n-го устройства или функции заданного класса. Номер устройства указывается в битах от 7 до 3, а номер функции - в битах. от 2 до 0.

Библиотека:

libc

Описание:

Функция pci_find_class() определяет местоположение 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_device(), 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 системной библиотеки