Content-type: text/html Man page of mod_install

mod_install

Section: Kernel Functions for Drivers (9F)
Updated: 12 May 2004
Index Return to Main Contents
 

NAME

mod_install, mod_remove, mod_info - add, remove or query a loadable module  

SYNOPSIS

#include <sys/modctl.h>

int mod_install(struct modlinkage *modlinkage);

int mod_remove(struct modlinkage *modlinkage);

int mod_info(struct modlinkage *modlinkage, struct modinfo *modinfo);  

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) routine.

mod_remove() must be called from a module's _fini(9E) routine.

mod_info() must be called from a module's _info(9E) routine.

When _init(9E) is executing, its call to mod_install() enables other threads to call attach(9E) even prior to mod_install() returning and _init(9E) completion. From a programming standpoint this means that all _init(9E) initialization 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) initilizations should only be undone after a successful return from mod_remove().  

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.  

EXAMPLES

See _init(9E) for an example that uses these functions.  

SEE ALSO

_fini(9E), _info(9E), _init(9E), modldrv(9S), modlinkage(9S), modlstrmod(9S)

Writing Device Drivers


 

Index

NAME
SYNOPSIS
INTERFACE LEVEL
PARAMETERS
DESCRIPTION
RETURN VALUES
EXAMPLES
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 02:39:40 GMT, October 02, 2010