Manpages

名 前

create_module − ロ ー ダ ー ブ ル モ ジ ュ ー ル の エ ン ト リ ー を 作 成 す る

書 式

#include <linux/module.h>

caddr_t create_module(const char *name, size_t size); 注 意 : こ の 関 数 の 宣 言 は glibc の ヘ ッ ダ ー で は 提 供 さ れ て い な い 。 「 注 意 」 を 参 照 。

説 明

注 意 : こ の シ ス テ ム コ ー ル が 存 在 す る の は 、 カ ー ネ ル 2.6 よ り 前 の Linux だ け で あ る 。

create_module() は 、 ロ ー ダ ー ブ ル モ ジ ュ ー ル の エ ン ト リ ー を 作 成 し 、 そ の モ ジ ュ ー ル の 保 持 に 必 要 な カ ー ネ ル メ モ リ ー を 予 約 し よ う と す る 。 こ の シ ス テ ム コ ー ル を 使 う に は 特 権 が 必 要 で あ る 。

返 り 値

成 功 す る と 、 モ ジ ュ ー ル が 配 置 さ れ る カ ー ネ ル 空 間 の ア ド レ ス を 返 す 。 エ ラ ー の 場 合 −1 を 返 し 、 errno を 適 切 に 設 定 す る 。

エ ラ ー

EEXIST そ の 名 前 の モ ジ ュ ー ル が す で に 存 在 す る 。

EFAULT

name が プ ロ グ ラ ム が ア ク セ ス で き る ア ド レ ス 空 間 の 外 部 に あ る 。

EINVAL 要 求 し た サ イ ズ が 小 さ す ぎ て 、 モ ジ ュ ー ル の ヘ ッ ダ ー 情 報 す ら 格 納 で き な い 。

ENOMEM モ ジ ュ ー ル を 格 納 す る の に 必 要 な 大 き さ の 連 続 し た メ モ リ ー ブ ロ ッ ク を カ ー ネ ル が 確 保 で き な か っ た 。

ENOSYS

create_module() が こ の バ ー ジ ョ ン の カ ー ネ ル で は サ ポ ー ト さ れ て い な い (例 え ば 、 カ ー ネ ル の バ ー ジ ョ ン が 2.6 以 降 )。

EPERM 呼 び 出 し 元 が 特 権

(CAP_SYS_MODULE ケ ー パ ビ リ テ ィ ) を 持 っ て い な

か っ た 。

バ ー ジ ョ ン

こ の シ ス テ ム コ ー ル が 存 在 す る の は カ ー ネ ル 2.4 ま で の Linux だ け で あ る 。 Linux 2.6 で は 削 除 さ れ た 。

準 拠

create_module() は Linux 固 有 で あ る 。

注 意

create_module() シ ス テ ム コ ー ル は glibc で は サ ポ ー ト さ れ て い な い 。 glibc ヘ ッ ダ ー で は 宣 言 は 提 供 さ れ て い な い が 、 歴 史 の 紆 余 曲 折 を 経 て glibc は こ の シ ス テ ム コ ー ル に 対 す る ABI を 公 開 し て い な い 。 し た が っ て 、 こ の シ ス テ ム コ ー ル を 利 用 す る に は 、 自 分 の コ ー ド の 中 で 手 動 で イ ン タ ー フ ェ ー ス を 宣 言 す れ ば よ い 。 syscall(2) を 使 っ て シ ス テ ム コ ー ル を 起 動 で き る 。

関 連 項 目

delete_module(2), init_module(2), query_module(2)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。