Common Driver Interface — Änderungen 4624 → 5001

Zeile 43: Zeile 43:
  
 
== Aufbau eines typischen Treibers ==
 
== Aufbau eines typischen Treibers ==
−
Zunächst eine Vorbemerkung: CDI wurde erstmals in tyndur implementiert, das nach wie vor das Referenzsystem für CDI darstellt. tyndur ist ein Mikrokernelsystem und aus diesem Grund liegt gelegentlich in Erklärungen die Annahme vor, dass ein Treiber ein eigenständiges Programm ist. CDI funktioniert aber auch mit einem monolithischen Kernel, aus der main-Funktion wird dann eine gewöhnliche Funktion, die zur Initialisierung des Treibers aufgerufen wird.
+
Zunächst eine Vorbemerkung: CDI wurde erstmals in týndur implementiert, das nach wie vor das Referenzsystem für CDI darstellt. týndur ist ein Mikrokernelsystem und aus diesem Grund liegt gelegentlich in Erklärungen die Annahme vor, dass ein Treiber ein eigenständiges Programm ist. CDI funktioniert aber auch mit einem monolithischen Kernel, aus der main-Funktion wird dann eine gewöhnliche Funktion, die zur Initialisierung des Treibers aufgerufen wird.
  
 
Sobald diese Funktion aufgerufen wird, registriert sie Datenstrukturen zur Beschreibung des Treibers bei CDI und führt die Initialisierung des Treibers durch. Im Allgemeinen werden dabei Geräte erkannt (z.B. auf dem PCI-Bus) und wiederum bei CDI registriert. Anschließend wird als letzte Aktion im Hauptprogramm die Funktion ''cdi_run_drivers'' aufgerufen, die bei einem Mikrokernelkonzept die Kontrolle an CDI übergibt und bei einem Monolithen im Allgemeinen leer ist und damit zum Kernel zurückkehrt, der die Treiberinitialisierung aufgerufen hat.
 
Sobald diese Funktion aufgerufen wird, registriert sie Datenstrukturen zur Beschreibung des Treibers bei CDI und führt die Initialisierung des Treibers durch. Im Allgemeinen werden dabei Geräte erkannt (z.B. auf dem PCI-Bus) und wiederum bei CDI registriert. Anschließend wird als letzte Aktion im Hauptprogramm die Funktion ''cdi_run_drivers'' aufgerufen, die bei einem Mikrokernelkonzept die Kontrolle an CDI übergibt und bei einem Monolithen im Allgemeinen leer ist und damit zum Kernel zurückkehrt, der die Treiberinitialisierung aufgerufen hat.
Zeile 53: Zeile 53:
 
* [[MyXomycota]]
 
* [[MyXomycota]]
 
* [[planlOS]]
 
* [[planlOS]]
−
* [[tyndur]]
+
* [[týndur]]
  
 
== Weblinks ==
 
== Weblinks ==
 
* [http://lpt.tyndur.org/cdi Aktuell-gehaltene Dokumentation der CDI-Header-Files von týndur]
 
* [http://lpt.tyndur.org/cdi Aktuell-gehaltene Dokumentation der CDI-Header-Files von týndur]
 
* [http://git.tyndur.org/?p=tyndur.git;a=tree;f=src/modules/cdi CDI-Treiber von týndur]
 
* [http://git.tyndur.org/?p=tyndur.git;a=tree;f=src/modules/cdi CDI-Treiber von týndur]