NAME
init_module - 初 始 化 一 条 可 加 载 模 块 的 记 录 .
总 览
#include <linux/module.h>
int init_module(const char *name, struct module *image);
描 述
init_module加
载 已 被 重 定 位
的 模 块 映 象 到
内 核 空 间 ,并 运
行 模 块 的 初 始
化 函 数 . 模 块 映
象 以 module结 构 开 始
,紧 跟 着 代 码 和
数 据 ,module定 义 如 下
:
struct module
{
unsigned long size_of_struct; /* module结 构
的 大 小 */
struct module *next; /*指 向 下 一
个 module结 构 */
const char *name; /* 模 块 名 字 */
unsigned long size;
long usecount; /* 使 用 计 数 */
unsigned long flags; /* 模 块 当 前
状 态 标 志 */
unsigned int nsyms;
unsigned int ndeps; /* 正 使 用 模
块 的 模 块 个 数 */
struct module_symbol *syms;
struct module_ref *deps;
struct module_ref *refs;
int (*init)(void); /* 模 块 的 初
始 化 函 数 指 针 */
void (*cleanup)(void); /*模 块 的 清
除 函 数 指 针 */
const struct exception_table_entry *ex_table_start;
const struct exception_table_entry *ex_table_end;
#ifdef __alpha__
unsigned long gp;
#endif }; 除 了 next和 refs外
,所 有 的 指 针 被
期 望 指 在 模 块
体 内 , 该 系 统 调
用 只 对 超 级 用
户 开 放 .
返 回 值
成 功 时 返 回 0,错 误 时 返 回 -1,errno被 相 应 设 置 .
错 误
EPERM 用 户 不 是 超 级 用 户 |
. |
|||
ENOENT |
name指 定 的 模 块 不 存 在 .
EINVAL |
||||
EBUSY 模 块 的 初 始 化 函 数 失 败 |
. |
|||
EFAULT |
name或 image越 出 了 程 序 可 访 问 的 地 址 空 间 .
"雷 勇 " <nsinit [AT] 263.net>
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh