Provided by: freebsd-manpages_9.2+1-1_all bug

NAME

       DRIVER_MODULE — kernel driver declaration macro

SYNOPSIS

       #include <sys/param.h>
       #include <sys/kernel.h>
       #include <sys/bus.h>
       #include <sys/module.h>

       DRIVER_MODULE(name, busname, driver_t driver, devclass_t devclass, modeventhand_t evh, void *arg);

DESCRIPTION

       The  DRIVER_MODULE()  macro  declares  a  kernel  driver.   DRIVER_MODULE()  expands  to  the real driver
       declaration, where the phrase name is used as the naming prefix for the driver and its  functions.   Note
       that it is supplied as plain text, and not a char or char *.

       busname is the parent bus of the driver (PCI, ISA, PPBUS and others), e.g. ‘pci’, ‘isa’, or ‘ppbus’.

       The  identifier  used  in  DRIVER_MODULE()  can be different from the driver name.  Also, the same driver
       identifier can exist on different busses, which is a pretty clean way of making front ends for  different
       cards using the same driver on the same or different busses.  For example, the following is allowed:

       DRIVER_MODULE(foo, isa, foo_driver, foo_devclass, NULL, NULL);

       DRIVER_MODULE(foo, pci, foo_driver, foo_devclass, NULL, NULL);

       driver  is  the driver of type driver_t, which contains the information about the driver and is therefore
       one of the two most important parts of the call to DRIVER_MODULE().

       The devclass argument contains the kernel-internal information about  the  device,  which  will  be  used
       within the kernel driver module.

       The  evh  argument is the event handler which is called when the driver (or module) is loaded or unloaded
       (see module(9)).

       The arg is unused at this time and should be a NULL pointer.

SEE ALSO

       device(9), driver(9), module(9)

AUTHORS

       This manual page was written by Alexander Langer <alex@FreeBSD.org>.

Debian                                           August 27, 2011                                DRIVER_MODULE(9)