other languages
init_module() | init_module() |
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@263.net>¶
跋¶
本页面中文版由中文 man 手册页计划提供。中文 man 手册页计划:../../man-pages-zh/manpages-zh