总览

#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越出了程序可访问的地址空间. 

init_module - 初始化一条可加载模块的记录.的更多相关文章

  1. create_module - 生成一条可加载模块记录

    总览 #include <linux/module.h> caddr_t create_module(const char *name, size_t size); 描述 create_m ...

  2. Linux驱动之内核加载模块过程分析

    Linux内核支持动态的加载模块运行:比如insmod first_drv.ko,这样就可以将模块加载到内核所在空间供应用程序调用.现在简单描述下insmod first_drv.ko的过程 1.in ...

  3. AngularJs 通过 ocLazyLoad 实现动态(懒)加载模块和依赖

    好了,现进入正题,在 AngularJs 实现动态(懒)加载主要是依赖于3个主JS文件和一段依赖的脚本. 实现的过程主要是引用3个主要的JS文件 <script src="angula ...

  4. AngularJS中多个ng-app(手动加载模块)

    1.当有多个ng-app时:(首先是要加载angularJS) <div ng-app=""> <p>姓名:<input type="tex ...

  5. AngularJs 通过 ocLazyLoad 实现动态(懒)加载模块和依赖-转

    http://blog.csdn.net/zhangh8627/article/details/51752872 AngularJs 通过 ocLazyLoad 实现动态(懒)加载模块和依赖 标签:  ...

  6. [driver]linux内核动态加载模块

    问题: 1. 把编译好的模块放到板子/lib/modules对应文件夹下,并且执行了depmod -a, 比如pl2303.ko, 那么下一次插入pl2303的串口线,是否可以识别,也就是自动加载pl ...

  7. AngularJs 动态加载模块和依赖

    最近项目比较忙额,白天要上班,晚上回来还需要做Angular知识点的ppt给同事,毕竟年底要辞职了,项目的后续开发还是需要有人接手的,所以就占用了晚上学习的时间.本来一直不打算写这些第三方插件的学习笔 ...

  8. thinkphp pathinfo nginx 无法加载模块:Index

    thinkphp 报了 无法加载模块:Index 错误位置 FILE: /var/multrix/wxactivity_archive/ThinkPHP/Library/Think/Dispatche ...

  9. Unity加载模块深度解析(纹理篇)

    在游戏和VR项目的研发过程中,加载模块所带来的效率开销和内存占用(即“加载效率”.“场景切换速度”等)经常是开发团队非常头疼的问题,它不仅包括资源的加载耗时,同时也包含场景物件的实例化和资源卸载等.在 ...

随机推荐

  1. Mysql : Maximum execution time of 30 seconds exceeded

    在向Mysql数据库中插入数据时,提示Maximum execution time of 30 seconds exceeded.......翻译:最大运行时间超过30秒. 最后在php.ini中找到 ...

  2. BytesWritable 长度问题(多出空格)

    在使用 BytesWritable 进行小文件合并时,发现长度与原类容不一致,会多出一些空格 测试代码 @Test public void test() { String str = "aa ...

  3. U盘无法拷贝大于4G的文件解决办法汇总

    U盘主要有三种格式: FAT32: 缺点:单个文件不能超过4GB,不支持512MB以下容量的U盘 备注:如果U盘容量达8GB以上,发现4GB文件拷不进去的话,可以考虑换用NTFS或ExFAT格式了 ● ...

  4. 小程序的autocomplete

    1.别做单个组件的autocomplete了,很坑,牵扯的坑太多,最后碰到原生组件canvas会让人欲哭无泪 2.单个组件的路走不通,走新页面吧,点击input框,进入到下个页面,搜所后选择,点击完成 ...

  5. 从 AVFrame 中取出帧(YUV)保存为 Mat 格式

    由于 cnblogs 不支持科学公式,完整内容请移步原文链接 原文地址:从 AVFrame 中取出帧(YUV)保存为 Mat 格式 从 AVFrame 中取出帧(YUV)保存为 Mat 格式 本文档针 ...

  6. Serializable 和 Parcelable 的区别?

    1.在使用内存的时候,Parcelable 类比 Serializable 性能高,所以推荐使用 Parcelable 类.2.Serializable 在序列化的时候会产生大量的临时变量,从而引起频 ...

  7. Windows 10下怎么远程连接 Ubuntu 16.0.4(小白级教程)

    前言: 公司因为用Ruby做开发,所有适用了Ubuntu系统,但是自己笔记本是W10,又不想装双系统,搭建开发环境,便想到倒不如自己远程操控公司电脑,这样在家的时候也可以处理一些问题.故此便有了下面的 ...

  8. Storm之WordCount初探

    刚接触Strom,记录下执行过程 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <proj ...

  9. Oracle中生成随机数的函数

    在Oracle中的DBMS_RANDOM程序包中封装了一些生成随机数和随机字符串的函数,其中常用的有以下两个: DBMS_RANDOM.VALUE函数 该函数用来产生一个随机数,有两种用法: 1. 产 ...

  10. EasyPHP(php集成环境)下载 v5.4.6官方安装版

    EasyPHP版本:12.1(32位) PHP版本:5.4.6 MYSQL版本:5.5.27 APACHE版本:2.4.2 下载地址请点击