2 * Copyright (c) 2009 Kevin Wolf
4 * This program is free software. It comes without any warranty, to
5 * the extent permitted by applicable law. You can redistribute it
6 * and/or modify it under the terms of the Do What The Fuck You Want
7 * To Public License, Version 2, as published by Sam Hocevar. See
8 * http://sam.zoy.org/projects/COPYING.WTFPL for more details.
14 #define cdi_glue(x, y) x ## y
15 #define cdi_declare_driver(drv, counter) \
16 static const void *__attribute__((section("cdi_drivers"), used)) \
17 cdi_glue(__cdi_driver_, counter) = &drv;
21 * Muss fuer jeden CDI-Treiber genau einmal verwendet werden, um ihn bei der
22 * CDI-Bibliothek zu registrieren
24 * @param name Name des Treibers
25 * @param drv Treiberbeschreibung (struct cdi_driver)
26 * @param deps Liste von Namen anderer Treiber, von denen der Treiber abhaengt
30 * CDI_DRIVER shall be used exactly once for each CDI driver. It registers
31 * the driver with the CDI library.
33 * @param name Name of the driver
34 * @param drv A driver description (struct cdi_driver)
35 * @param deps List of names of other drivers on which this driver depends
38 #define CDI_DRIVER(name, drv) cdi_declare_driver(drv, __COUNTER__)
42 * OS-spezifische Daten zu PCI-Geraeten
45 * OS-specific PCI data.
48 typedef int cdi_pci_device_osdep
;
52 * OS-spezifische Daten fuer einen ISA-DMA-Zugriff
55 * OS-specific DMA data.
58 typedef int cdi_dma_osdep
;
62 * OS-spezifische Daten fuer Speicherbereiche
65 * OS-specific data for memory areas.
68 typedef int cdi_mem_osdep
;