как работает макрос для получения регистра базового адреса из ядра - PullRequest
2 голосов
/ 22 ноября 2010

я пытаюсь понять работу функции pci_resource_start Поэтому я просмотрел код через cscope и искал строку pci_resource_start и получил следующий в pci.h

 #define pci_resource_start(dev, bar)    ((dev)->resource[(bar)].start)

Я не могу понять, как работает этот макрос. Как это выше макрос получает соответствующий регистр базового адреса в пространство конфигурации?

1 Ответ

5 голосов
/ 22 ноября 2010

Цель макроса - просто улучшить читаемость исходного кода, он не приводит к получению какого-либо адреса. Фактически, адрес (обозначенный start членом) уже был обнаружен ранее, когда шина PCI и / или устройство сканировались / инициализировались. («Старт» в данном случае также означает «начало диапазона адресов», а не «начать что-то делать».) Подробности этого, скорее всего, можно найти в одном из файлов с именем pci.c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...