Manpages

NAME

query_module - 向 内 核 查 询 和 模 块 有 关 的 各 个 位 . /* 查 询 有 关 的 位 ?? */

总 览

#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. The output buffer format is adjacent null-terminated strings; ret is set t 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中 至 少 一 个 越 出 了 程 序 可 访 问 的 地 址 空 间 .

"雷 勇 " <nsinit [AT] 263.net>

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh