Kernel Functions for Drivers mod_install(9F)
NAME
mod_install, mod_remove, mod_info, mod_modname - add, remove
or query a loadable moduleSYNOPSIS
#include
int mod_install(struct modlinkage *modlinkage);
int mod_remove(struct modlinkage *modlinkage);
int mod_info(struct modlinkage *modlinkage,
struct modinfo *modinfo);const char *mod_modname(struct modlinkage *modlinkage);
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI).PARAMETERS
modlinkage Pointer to the loadable module's modlinkage structure which describes what type(s) of module elements are included in this loadable module. modinfo Pointer to the modinfo structure passed to_info(9E).
DESCRIPTION
mod_install() must be called from a module's _init(9E) rou-
tine.mod_remove() must be called from a module's _fini(9E) rou-
tine.mod_info() must be called from a module's _info(9E) routine.
mod_modname() can be called from any module routine.
SunOS 5.11 Last change: 8 Jul 2008 1
Kernel Functions for Drivers mod_install(9F)
When _init(9E) is executing, its call to mod_install()
enables other threads to call attach(9E) even prior tomod_install() returning and _init(9E) completion. From a
programming standpoint this means that all _init(9E) ini-
tialization must occur prior to _init(9E) calling
mod_install(). If mod_install() fails (non-zero return
value), any initialization must be undone.When _fini(9E) is executing, another thread may call
attach(9E) prior to _fini(9E) calling mod_remove(). If this
occurs, the mod_remove() fails (non-zero return). From a
programming standpoint, this means that _init(9E) initiliza-
tions should only be undone after a successful return frommod_remove().
To query the name of a module, use mod_modname(). If the
module is a driver, the module name is the same as thedriver name. This function can be used to avoid compiled-in
knowledge of the module name, and is of particular use when_init(9E) needs to call a function like kstat_create(9F).
RETURN VALUES
mod_install() and mod_remove() return 0 upon success and
non-zero on failure.
mod_info() returns a non-zero value on success and 0 upon
failure.mod_modname() returns the name of the module. The returned
name remains valid as long as the module remains loaded.EXAMPLES
See _init(9E) for an example that uses these functions.
SEE ALSO
_fini(9E), _info(9E), _init(9E), kstat_create(9F),
modldrv(9S), modlinkage(9S), modlstrmod(9S) Writing Device DriversSunOS 5.11 Last change: 8 Jul 2008 2