zoukankan      html  css  js  c++  java
  • 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越出了程序可访问的地址空间. 
  • 相关阅读:
    动态横向(水平)合并Repeater数据行DataItem的列
    动态绑数据(Repeater控件HeaderTemplate和ItemTemplate)
    动态横向(水平)合并GridView数据行DataRow的列
    动态绑数据(GridView控件Header和ItemTemplate)
    用具体列名替代星号
    如何实现数据行转换列显示
    用LINQ获取XML节点数据
    从字符串中获取XML节点数据
    字符串创建XML文档
    根据Attribute值条件对XML文档进行修改
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11087954.html
Copyright © 2011-2022 走看看