[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cdi-devel] [PATCH] Documentation: Add general interface description (German)
Start documentation on general subjects that cannot be associated with
any module or data structure. The page is linked from the Doxygen main
page.
Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
doc/doc.h | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
doc/doxyfile.in | 2 +-
2 files changed, 57 insertions(+), 1 deletions(-)
create mode 100644 doc/doc.h
diff --git a/doc/doc.h b/doc/doc.h
new file mode 100644
index 0000000..d1f60e5
--- /dev/null
+++ b/doc/doc.h
@@ -0,0 +1,56 @@
+/**
+ * \mainpage
+ * - \ref general_interface
+ */
+
+/**
+ * \page general_interface Allgemeine Schnittstellenbeschreibung
+ *
+ * Diese Seite beschreibt allgemeine Regeln für das Zusammenspiel von Treibern
+ * und Betriebssystem, die nicht einem bestimmtem Modul oder einer bestimmten
+ * Datenstruktur zugeordnet werden können.
+ *
+ * Die zwei wesentlichen Teile sind Bedingungen, die das Betriebssystem auf
+ * Quellcode-Ebene garantieren muss (z.B. Bereitstellung von bestimmten
+ * Funktionen) und Bedingungen, die zur Laufzeit gelten.
+ *
+ * \section gi_source Quellcode-Ebene
+ * \subsection gi_source_naming Namensregeln
+ * Um Namenskonflikte zu vermeiden, sind folgende Regeln zu beachten:
+ * - Ã?ffentliche Namen der CDI-Implementierung (d.h. global sichtbare Namen
+ * und in CDI-Headerdateien verwendete Namen) beginnen mit cdi_ oder CDI_.
+ * - Ã?ffentliche Namen eines CDI-Treibers beginnen mit dem Treibernamen
+ * gefolgt von einem Unterstrich (z.B. e1000_send_packet)
+ *
+ * \subsection gi_source_libc Funktionen der C-Standardbibliothek
+ * Die CDI-Implementierung muss keine vollständige C-Standardbibliothek zur
+ * Verfügung stellen. Treiber müssen sich auf folgende Teile beschränken
+ * (oder die Benutzung weiterer Funktionen durch \#ifdef optional machen):
+ * - Alles aus stddef.h
+ * - Alles aus stdint.h
+ * - Alles aus string.h
+ * - Speicherverwaltungsfunktionen aus stdlib.h: malloc, calloc, realloc, free
+ * - printf-Familie aus stdio.h, ohne fprintf und vfprintf. AuÃ?erdem asprintf.
+ * \todo Gebrauch von stdio.h einschränken
+ *
+ * \section gi_runtime Laufzeit
+ * \subsection gi_runtime_intr Nebenläufigkeit und Unterbrechungen
+ * Nebenläufigkeit ist das gleichzeitige oder quasi-gleichzeitige Ablaufen von
+ * Code (z.B. Multithreading). Eine Unterbrechung bedeutet, dass ausgeführter
+ * Code angehalten wird, um anderen Code auszuführen, und erst anschlie�end
+ * der angehaltene Code wieder fortgesetzt wird (z.B. Unix-Signale).
+ *
+ * Die Nutzung beider Konzepte erfordert es, dass der Quellcode sich gegen
+ * unerwünschte Effekt wie Race Conditions schützt, z.B. durch Locks. Da die
+ * jeweiligen Methoden OS-abhängig sind und um Treiber einfach zu halten,
+ * gelten für CDI die folgenden Einschränkungen:
+ *
+ * - Treibercode wird niemals unterbrochen. Die einzige Ausnahme ist die
+ * Funktion cdi_wait_irq, während der IRQ-Handler ausgeführt werden
+ * dürfen.
+ * - Nebenläufigkeit ist erlaubt, sofern die CDI-Implementierung sicherstellt,
+ * dass für jedes Gerät gleichzeitig nur eine Funktion ausgeführt wird
+ * (z.B. durch ein Lock auf das cdi_device). Treiber dürfen nicht davon
+ * ausgehen, dass irgendwelche Funktionen nebenläufig ausgeführt werden.
+ * Nebenläufigkeit ist für die Implementierung optional.
+ */
diff --git a/doc/doxyfile.in b/doc/doxyfile.in
index bf51713..af4fad1 100644
--- a/doc/doxyfile.in
+++ b/doc/doxyfile.in
@@ -80,7 +80,7 @@ WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
-INPUT = include
+INPUT = include doc/doc.h
INPUT_ENCODING = UTF-8
FILE_PATTERNS =
RECURSIVE = YES
--
1.6.0.2