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越出了程序可访问的地址空间.
相关文章
- Python 标准库 functools 模块详解
- python的multiprocessing模块进程创建、资源回收-Process,Pool
- 【算法】【链表模块】单链表每k个节点之间逆序
- FastDFS整合nginx模块报错
- Python logging模块
- IP对讲广播音频模块解决方案
- python中记录打印的log模块logging的用法实例
- python之模块pydoc
- create_module - 生成一条可加载模块记录
- 「基于Python技术的智慧中医商业项目」问诊模块后台管理
- python值inspect模块的简单使用
- pytorch 第三方模块 GraphNAS 安装成功记录
- 使用Anaconda安装Tensorflow在导入模块时会出现ImportError: DLL load failed: 找不到指定的模块的问题
- 第五周日志模块正则和包
- Python 去掉字符串中的超链接href,email的两种方法(re模块,bs模块)
- 员工模块--技能等级的信息化
- datetime模块
- elasticSearch6源码分析(3)cluster模块
- BurpSuite的Intruder暴破模块匹配返回包内容