init_module
目录
- NAME
init_module - 初始化一条可加载模块的记录.
.SH 总览
.B #include
.sp int init_module(const char *name, struct module *image); .SH 描述 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外,所有的指针被期望指在模块体内, 该系统调用只对超级用户开放. .SH 返回值 成功时返回0,错误时返回 -1,errno被相应设置. .SH 错误 .TP EPERM 用户不是超级用户. .TP ENOENT name指定的模块不存在. .TP EINVAL .TP EBUSY 模块的初始化函数失败. .TP EFAULT name或image越出了程序可访问的地址空间. .SH - 跋
init_module
NAMEæ»è§
æè¿°
è¿åå¼
é误
è·
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
æå页计åï¼https://github.com/man-pages-zh/manpages-zh