MODLOAD(8)

NAME
modload - load a kernel module

SYNOPSIS
modload filename [ -d ] [ -v ] [ -sym ] [ -A vmunix_file ] [ -conf config_file ] [ -entry entry_point ] [ -exec exec_file ] [ -o output_file ]

DESCRIPTION

modload loads a loadable module into a running system. The input file filename is an object file (.o file).

OPTIONS

-d  Debug. Used to debug modload itself.

-v  Verbose. Print comments on the loading process.

-sym
    Preserve symbols for use by kadb(8S).

-A vmunix_file
    Specify the file that is passd to the linker to resolve module references to kernel symbols. The default is /vmunix. The symbol file must be for the currently running kernel or the module is likely to crash the system.

-conf config_file
    Use this configuration file to configure the loadable driver being loaded. The commands in this file are the same as those that the config(8) program recognizes. There are two additional commands recognized, blockmajor and charmajor. See the for information on these commands.

-entry entry_point
    Specify the module entry point. This is passed by modload to ld(1) when the module is linked. The default module entry point name is `xxxinit'.

-exec exec_file
    Specify the name of a shell script or executable image file that will be executed if the module is successfully loaded. It is always passed the module id (in decimal) and module type (in hexadecimal) as the first two arguments. Module types are listed in /usr/include/sun/vddrv.h. For loadable drivers, the third and fourth arguments are the block major and character major numbers respectively. For a loadable system call, the third argument is the system call number.

-o output_file
    Specify the name of the output file that is produced by the linker. If this option is omitted, then the output file name is filename without the `.o'.

BUGS
On Sun-3 machines, the config(8) program generates assembly language wrappers to provide the proper linkage to device interrupt handlers. modload does not generate these wrappers; on interrupt, control passes directly to the loadable driver's interrupt handler. Consequently, the driver must provide its own wrapper. See the ioconf.c file generated by config(8) for examples of wrappers.

SEE ALSO
ld(1), config(8), kadb(8S), modunload(8), modstat(8)