MODULE_DEPEND(9) BSD Kernel Developer's Manual MODULE_DEPEND(9)NAME
MODULE_DEPEND -- set kernel module dependencies
SYNOPSIS
#include <sys/param.h>
#include <sys/module.h>
MODULE_DEPEND(name, moddepend, int minversion, int prefversion, int maxversion);
DESCRIPTION
The MODULE_DEPEND() macro sets a dependency on another kernel module with name moddepend, which has registered its version with
MODULE_VERSION().
The MODULE_DEPEND() macro provides hints to the kernel loader(8) and to the kernel linker to ensure that the named dependency is loaded prior
to the existing module. It does not change or dictate the order in which modules are initialized at runtime.
Three versions must be specified for moddepend:
minversion The minimum version on which the current module can depend.
maxversion The maximum version on which the current module can depend.
prefversion The preferred version on which the current module can depend.
EXAMPLES
MODULE_DEPEND(foo, bar, 1, 3, 4);
SEE ALSO DECLARE_MODULE(9), module(9), MODULE_VERSION(9)AUTHORS
This manual page was written by Alexander Langer <alex@FreeBSD.org>.
BSD January 11, 2005 BSD
Check Out this Related Man Page
MODULE(9) BSD Kernel Developer's Manual MODULE(9)NAME
module -- structure describing a kernel module
DESCRIPTION
Each module in the kernel is described by a module_t structure. The structure contains the name of the device, a unique ID number, a pointer
to an event handler function and to an argument, which is given to the event handler, as well as some kernel internal data.
The DECLARE_MODULE(9) macro registers the module with the system.
When the module is loaded, the event handler function is called with the what argument set to MOD_LOAD.
On unload it is first called with what set to MOD_QUIESCE. If the unload was not forced, a non-zero return will prevent the unload from hap-
pening.
If the unload continues what is set to MOD_UNLOAD. If the module returns non-zero to this, the unload will not happen.
The difference between MOD_QUIESCE and MOD_UNLOAD is that the module should fail MOD_QUIESCE if it is currently in use, whereas MOD_UNLOAD
should only fail if it is impossible to unload the module, for instance because there are memory references to the module which cannot be
revoked.
When the system is shutting down, what contains the value of MOD_SHUTDOWN.
The module should return EOPNOTSUPP for unsupported and unrecognized values of what.
EXAMPLES
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/module.h>
static int foo_handler(module_t mod, int /*modeventtype_t*/ what,
void *arg);
static moduledata_t mod_data= {
"foo",
foo_handler,
NULL
};
MODULE_VERSION(foo, 1);
MODULE_DEPEND(foo, bar, 1, 3, 4);
DECLARE_MODULE(foo, mod_data, SI_SUB_EXEC, SI_ORDER_ANY);
SEE ALSO DECLARE_MODULE(9), DEV_MODULE(9), DRIVER_MODULE(9), MODULE_DEPEND(9), MODULE_VERSION(9), SYSCALL_MODULE(9)
/usr/share/examples/kld
AUTHORS
This manual page was written by Alexander Langer <alex@FreeBSD.org>.
BSD July 19, 2007 BSD
I have one big module 2.6.18 kernel mod.c
I want to divide this to several files.
The problem is to write right Makefile
lib1.h
lib1.c
mod.c
mod.c works fine normally but when I divide into several files
and try to compile with this makefile
obj-m := mod.o
mod-objs := lib1.o
... (3 Replies)
How to implement hello world kernel module on ubuntu ?I want the hello.c and makefile file for the module and also steps for compilation and installation of the module.:wall: (1 Reply)
I have open suse kernel kernel 3.1.0-1.2-desktop on which I used kernel source 3.1.10-1.2 downloaded from kernel.org.
The module gets built.
While loading a kernel module I am getting Invalid module format error with description "first_driver: no symbol version for module_layout"
The... (5 Replies)