Краткая справка

Предыдущая  Содержание  Следующая V*D*V

В этом разделе просуммированы символы, представленные в этой главе:

 

#include <linux/pci.h>

Заголовок, который подключает символические имена регистров PCI и несколько идентификаторов поставщиков и устройств.

struct pci_dev;

Структура, которая представляет PCI устройство в ядре.

struct pci_driver;

Структура, которая представляет драйвер PCI. Все драйверы PCI должны её определять.

struct pci_device_id;

Структура, которая описывает типы устройств PCI, которые поддерживает этот драйвер.

int pci_register_driver(struct pci_driver *drv);

int pci_module_init(struct pci_driver *drv);

void pci_unregister_driver(struct pci_driver *drv);

Функции, которые регистрируют или отменяют регистрацию PCI драйвера в ядре.

struct pci_dev *pci_find_device(unsigned int vendor, unsigned int device, struct pci_dev *from);

struct pci_dev *pci_find_device_reverse(unsigned int vendor, unsigned int device, const struct pci_dev *from);

struct pci_dev *pci_find_subsys (unsigned int vendor, unsigned int device,

unsigned int ss_vendor, unsigned int ss_device, const struct pci_dev *from);

struct pci_dev *pci_find_class(unsigned int class, struct pci_dev *from);

Функции, которые ищут устройство в списке устройств с заданной сигнатурой или принадлежащие к определённому классу. Если ничего не найдено, возвращается значение NULL. from используется для продолжения поиска; она должно быть NULL при первом вызове любой функции и она должна указывать на только что найденное устройство, если вы ищете несколько устройств. Эти функции не рекомендуется использовать, используйте вместо них варианты pci_get_.

struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device, struct pci_dev *from);

struct pci_dev *pci_get_subsys(unsigned int vendor, unsigned int device,

                  unsigned int ss_vendor, unsigned int ss_device, struct pci_dev *from);

struct pci_dev *pci_get_slot(struct pci_bus *bus, unsigned int devfn);

Функции, которые ищут список устройств для устройств с заданной сигнатурой или принадлежащих к определённому классу. Если ничего не найдено, возвращается значение NULL. from используется для продолжения поиска; она должна быть NULL при первом вызове любой функции и она должна указывать на только что найденное устройство, если вы ищете несколько устройств. Возвращаемая структура увеличивает свой счётчик ссылок и после завершения работы с ней вызывающего должна быть вызвана функция pci_dev_put.

int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val);

int pci_read_config_word(struct pci_dev *dev, int where, u16 *val);

int pci_read_config_dword(struct pci_dev *dev, int where, u32 *val);

int pci_write_config_byte (struct pci_dev *dev, int where, u8 val);

int pci_write_config_word (struct pci_dev *dev, int where, u16 val);

int pci_write_config_dword (struct pci_dev *dev, int where, u32 val);

Функции, которые читают или пишут реестр PCI конфигурации. Хотя ядро Linux заботится о порядке байтов, программист должен быть внимателен с порядком байтов при сборке многобайтовых значений из отдельных байтов. Шина PCI использует little-endian (сначала младший).

int pci_enable_device(struct pci_dev *dev);

Разрешение PCI устройства.

unsigned long pci_resource_start(struct pci_dev *dev, int bar);

unsigned long pci_resource_end(struct pci_dev *dev, int bar);

unsigned long pci_resource_flags(struct pci_dev *dev, int bar);

Функции, которые обрабатывают ресурсы PCI устройства.

Предыдущая  Содержание  Следующая