NAME
moduload — unload a kernel module on demand
SYNOPSIS
#include <sys/mod.h>
int moduload(long module_id);
DESCRIPTION
moduload
allows processes with appropriate privilege to demand unload
one or all unloadable modules from the running kernel.
A module is considered
unloadable
if it is not currently in use, if no module depending on it is currently loaded,
and if the module is not being loaded or unloaded from the kernel.
If
module_id
is set to 0 (zero),
moduload
attempts to unload all unloadable modules, otherwise
moduload
attempts to unload the module specified by
module_id.
Notes
moduload
is currently implemented as a macro.
Security Restrictions
moduload
is restricted to superuser processes or privileged processes.
A privileged process requires the
PRIV_DLKM
privilege to execute the
moduload
system call.
See
privileges(5),
for more information about the
DLKM_PRIV
privilege.
RETURN VALUE
On success,
moduload
returns 0, otherwise it returns -1 and sets
errno
to indicate the error.
ERRORS
moduload
fails if one or more of the following are true:
- EINVAL
module_id
does not correspond to any valid currently loaded kernel module.
- EPERM
The caller is not a superuser process or a privileged process.
- EBUSY
There are outstanding references to the module, or modules that depend
on this module are currently loaded, or profiling is enabled, or the module
is in the process of being loaded or unloaded from the kernel.
- ENOSYS
The Dynamically Loadable Kernel Module feature is not initialized.