总览

#include <linux/module.h>

int query_module(const char *name, int which,void *buf, size_t bufsize, size _t *ret);

描述

query_module请求和可加载模块有关的来自内核的信息.信息的细致的特性和格式依赖于 which参数,一些函数要求name参数来命名当前被加载的模块.一些允许参数name为null, 指明内核是正确的.: which的值 0 Always returns success. Used to probe for the system call. 0 总是返回成功,用来探测系统调用. /* 参见 insmod -p 和前面文章 */ QM_MODULES Returns the names of all loaded modules. The output buffer
format is adjacent null-terminated strings; ret is set to the number of mod
ules.
返回所有已加载的模块的名字.输出缓冲区的格式是邻近的以null终止的字符串;ret 被设置为模块的数目. QM_DEPS
Returns the names of all modules used by the indicated module o the number of
modules. 返回所有被name参数指定的模块使用的模块的名字.输出缓冲区格式是邻近的以null终止的字符串;ret被设置为模块的数目. QM_REFS
Returns the names of all modules using the indicated module. This is the inverse
of QM_DEPS. The output buffer format is adjacent null-te rminated strings; ret
is set to the number of modules.

返回所有正使用被name参数指定的模块的模块名字.这和QM_DEPS是相反的.输出缓冲区格式是以邻近的null终止的字符串;ret被设置为模块的数目.
QM_SYMBOLS Returns the symbols and values exported by the kernel or t he
indicated module. The buffer format is an array of:

struct module_symbol
{

unsigned long value;
unsigned long name;

};

followed by null-terminated strings. The value of name is the
character offset of the string relative to the start of buf; ret is set to t he
number of symbols.

返回被内核或指定模块导出(开放)的符号和值对.缓冲区格式是一个以null终止的结构数组,name的值是相对缓冲区的开始的字符串的字符偏移;ret被设置为符号的数目.

struct module_symbol
{
unsigned long value;

unsigned long value;
} QM_INFO Returns miscelaneous
information about the indicated module. The output buffer format is:

struct module_info
{

unsigned long address;

unsigned long size;

unsigned long flags;
};

where address is the kernel address at which the module reside
s, size is the size of the module in bytes, and flags is a mask of MOD_RUNNI NG,
MOD_AUTOCLEAN, et al that indicates the current status of the module. re t is
set to the size of the module_info struct.
返回各种和指定模块相关的各种信息,输出缓冲区的格式如下:

struct module_info
{
unsigned long address;

unsigned long size;
unsigned long flags;
}

address是模块在内核空间中驻留的地址,size是模块以字节计数的大小,flags是MOD_R
UNING,MOD_AUTOCLEAN等指示模块当前状态的标志的按位或组成的掩玛.ret被设置为mod ule_info结构的大小.

返回值

成功时总是返回0,错误是返回-1,全局变量errno被相应设置.

错误

ENOENT
被name指定的模块不存在.
EINVAL
ENOSPC
提供的缓冲区太小,ret被设置为需要的最小大小.
EFAULT
name,buf或ret中至少一个越出了程序可访问的地址空间.        

最新文章

  1. UP Board 超详细开箱评测
  2. Android Token的使用学习
  3. haslayout详解
  4. &lt;转&gt;关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
  5. Android课程---关于ListView列表视图的学习
  6. python的异常小结与assert
  7. Block存储区域
  8. C语言面试题汇总之一
  9. 对angular实现延迟加载template和controller
  10. 在ax中怎么对enum类型循环取其中每一个值
  11. Codeforces Round #337 (Div. 2) C. Harmony Analysis 构造
  12. bzoj1260
  13. Linux在简短而经常使用的命令
  14. hdu4699 Editor 2013 多校训练第十场 D题 数列维护 splay | 线段树 | 栈!!!!!
  15. UML和模式
  16. mysql中Table is read only的解决方法
  17. Lambda表达式树解析(下)
  18. hmtl工具
  19. tree-data
  20. 活字格Web应用平台学习笔记 6 - 使用公式

热门文章

  1. W3C 事件切换 颜色变化
  2. css3 动画 Transition
  3. 【面试题】JavaScript
  4. springboot2整合logback.xml动态修改日志打印级别
  5. ueditor编辑器中从word中复制带图片的信息的操作演示
  6. 20180712-Java Character类
  7. vue 3.0 vue-cli项目搭建要点
  8. 攻防世界 | guess_num
  9. python保存selenium的cookies写入和读出
  10. IDEA创建springboot异常(Failed to load class &quot;org.slf4j.impl.StaticLoggerBinder&quot;)