driver_module(9)
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); MULTI_DRIVER_MODULE(name, busname, driver_t drivers[], 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 differ - ent busses,
which is a pretty clean way of making front ends for differ - ent 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 impor - tant parts of
the call to DRIVER_MODULE(). - The devclass argument contains the kernel-internal informa
- tion 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.
- MULTI_DRIVER_MODULE() is a special version of
DRIVER_MODULE
takes a list of drivers instead of a single driver instance.
SEE ALSO
device(9), driver(9), module(9)
AUTHORS
- This manual page was written by Alexander Langer
- <alex@FreeBSD.org>.
- BSD May 16, 2000