понедельник, 9 мая 2011 г.

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

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

В этом разделе просуммированы символы, представленные в этой главе:
 
#include
Заголовок, который подключает символические имена регистров 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 устройства.

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.