| Zeile 113: | Zeile 113: | ||
==== Funktionen ==== | ==== Funktionen ==== | ||
| + | |||
| + | ===== cdi.h ===== | ||
<c>void cdi_init(void);</c> | <c>void cdi_init(void);</c> | ||
Initialisiert die CDI-Strukturen des Betriebssystems, muss vor Benutzung anderer CDI-Funktionen aufgerufen werden - wiederholte Aufrufe müssen ohne Effekt bleiben. | Initialisiert die CDI-Strukturen des Betriebssystems, muss vor Benutzung anderer CDI-Funktionen aufgerufen werden - wiederholte Aufrufe müssen ohne Effekt bleiben. | ||
| Zeile 123: | Zeile 125: | ||
<c>void cdi_driver_register(struct cdi_driver *driver);</c> | <c>void cdi_driver_register(struct cdi_driver *driver);</c> | ||
Registriert einen CDI-Treiber. Es bietet sich an, ihn in einer globalen Liste einzutragen und diese Liste dann beim cdi_run_drivers()-Aufruf abzuarbeiten. | Registriert einen CDI-Treiber. Es bietet sich an, ihn in einer globalen Liste einzutragen und diese Liste dann beim cdi_run_drivers()-Aufruf abzuarbeiten. | ||
| + | |||
| + | ===== cdi/misc.h ===== | ||
<c>void cdi_register_irq(uint8_t irq, void (*handler)(struct cdi_device*), struct cdi_device *device);</c> | <c>void cdi_register_irq(uint8_t irq, void (*handler)(struct cdi_device*), struct cdi_device *device);</c> | ||
Registriert eine ISR "handler" für den angegebenen IRQ "irq". Der ISR muss beim Aufruf das angegebene CDI-Gerät "device" als Parameter übergeben werden. | Registriert eine ISR "handler" für den angegebenen IRQ "irq". Der ISR muss beim Aufruf das angegebene CDI-Gerät "device" als Parameter übergeben werden. | ||
| Zeile 139: | Zeile 143: | ||
<c>void cdi_sleep_ms(uint32_t ms);</c> | <c>void cdi_sleep_ms(uint32_t ms);</c> | ||
Wartet "ms" Millisekunden. | Wartet "ms" Millisekunden. | ||
| + | |||
| + | ===== cdi/pci.h ===== | ||
<c>void cdi_pci_get_all_devices(cdi_list_t list);</c> | <c>void cdi_pci_get_all_devices(cdi_list_t list);</c> | ||
Fügt alle vorhandenen PCI-Geräte in die Liste "list" ein. | Fügt alle vorhandenen PCI-Geräte in die Liste "list" ein. | ||
| Zeile 151: | Zeile 157: | ||
<c>void cdi_pci_free_memory(struct cdi_pci_device *device);</c> | <c>void cdi_pci_free_memory(struct cdi_pci_device *device);</c> | ||
Gibt selbigen Speicher wieder frei. | Gibt selbigen Speicher wieder frei. | ||
| + | |||
| + | ===== cdi/io.h ===== | ||
<c>uint8_t cdi_inb(uint16_t port); | <c>uint8_t cdi_inb(uint16_t port); | ||
uint16_t cdi_inw(uint16_t port); | uint16_t cdi_inw(uint16_t port); | ||
| Zeile 159: | Zeile 167: | ||
void cdi_outl(uint16_t port, uint32_t data);</c> | void cdi_outl(uint16_t port, uint32_t data);</c> | ||
Gibt ein Byte/Word/DWord am angegebenen I/O-Port aus. | Gibt ein Byte/Word/DWord am angegebenen I/O-Port aus. | ||
| + | |||
| + | ===== cdi/lists.h ===== | ||
<c>cdi_list_t cdi_list_create(void);</c> | <c>cdi_list_t cdi_list_create(void);</c> | ||
Erstellt eine Linked-List (gibt NULL bei Fehler zurück). | Erstellt eine Linked-List (gibt NULL bei Fehler zurück). | ||