2010-11-22 10 views
2

ich mit der Arbeit von pci_resource_start Funktion zu verstehen versuchen So geblättert ich Code über cscope und suchte nach einem String pci_resource_start und bekam folgende in pci.hwie funktioniert Makro-Basisadressregister vom Kernel zu bekommen funktioniert

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

Ich kann nicht verstehen, wie das obige Makro funktioniert. Wie funktioniert es über Makro erhält geeignete Basisadresse Register in Konfigurationsraum?

Antwort

5

Der Zweck des Makros besteht lediglich darin, die Lesbarkeit im Quellcode zu verbessern, da keine Adresse abgerufen wird. Tatsächlich wurde die Adresse (durch das Mitglied start bezeichnet) bereits früher entdeckt, als der PCI-Bus und/oder das Gerät gescannt/initialisiert wurde. ("Start" bedeutet in diesem Fall auch "Start des Adressbereichs" statt "Beginne, etwas zu tun".) Details davon sind am ehesten in einer der Dateien pci.c zu finden.

Verwandte Themen