| Zeile 227: | Zeile 227: | ||
===== Beispiel-Code zur BAR-Analyse ===== | ===== Beispiel-Code zur BAR-Analyse ===== | ||
Der folgende C-Code analysiert alle BARs im Konfigurations-Adressraum eines PCI-Gerätes und gibt alle verfügbaren Informationen aus. Dieser Code sollte möglichst nicht auf aktivierte PCI-Geräte angewendet werden, falls doch wäre es geschickt den Vorgang atomar zu gestalten und alle BARs vorher zu sichern und hinter zu restaurieren. Außerdem sollten die Bits 0 und 1 des Command-Registers gelöscht sein. | Der folgende C-Code analysiert alle BARs im Konfigurations-Adressraum eines PCI-Gerätes und gibt alle verfügbaren Informationen aus. Dieser Code sollte möglichst nicht auf aktivierte PCI-Geräte angewendet werden, falls doch wäre es geschickt den Vorgang atomar zu gestalten und alle BARs vorher zu sichern und hinter zu restaurieren. Außerdem sollten die Bits 0 und 1 des Command-Registers gelöscht sein. | ||
| − | <c>/*** Diesen Code darf jeder, unter Berücksichtigung der Lizenz für diesen Wiki-Artikel, zu jedem Zweck kopieren, nutzen und verändern! | + | <source lang="c" line start="1"> |
| + | /*** Diesen Code darf jeder, unter Berücksichtigung der Lizenz für diesen Wiki-Artikel, zu jedem Zweck kopieren, nutzen und verändern! | ||
(C) <http://www.lowlevel.eu/> ***/ | (C) <http://www.lowlevel.eu/> ***/ | ||
| Zeile 403: | Zeile 404: | ||
if (bar != max_bars) | if (bar != max_bars) | ||
{ printf("interner Fehler in Schleife!\n"); return; } | { printf("interner Fehler in Schleife!\n"); return; } | ||
| − | }</ | + | }</source> |
=== Zugriff auf den Konfigurations-Adressraum === | === Zugriff auf den Konfigurations-Adressraum === | ||
| Zeile 417: | Zeile 418: | ||
==== Codebeispiel ==== | ==== Codebeispiel ==== | ||
| − | < | + | <source lang="javascript" line start="1"> |
| + | |||
#define PCI_CONFIG_DATA 0x0CFC | #define PCI_CONFIG_DATA 0x0CFC | ||
#define PCI_CONFIG_ADDRESS 0x0CF8 | #define PCI_CONFIG_ADDRESS 0x0CF8 | ||
| Zeile 450: | Zeile 452: | ||
outl(PCI_CONFIG_DATA,val); | outl(PCI_CONFIG_DATA,val); | ||
} | } | ||
| − | </ | + | </source> |
== Classcodes == | == Classcodes == | ||