INIT_MODULE
Section: Linux Module Support (2)
Updated: 26 Dec 1996
Index
JM Home Page
roff page
名前
init_module - ローダブルモジュールのエントリを初期化する
書式
#include <linux/module.h>
int init_module(const char *name, struct module *image);
このマニュアルについて
これは、Linux Kernel 2.4 の時代に使われていた modutils
パッケージ所収の古いマニュアルです。(2022/12/02, Linux JM Project)
説明
init_module
は再配置されたモジュールイメージをカーネル空間にロードし、その
モジュールの init 関数を実行する。
モジュールイメージは、先頭部分にモジュール構造体が置かれ、その後に適切
なコードとデータが配置される。モジュール構造体の定義を以下に示す:
-
struct module
{
unsigned long size_of_struct;
struct module *next;
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
-
その名前を持つモジュールが存在しない。
- EINVAL
-
image スロットの一部に誤った値が入っているか、
image->name が元のモジュールの名前に一致していないか、
image->deps エントリの一部がロードされたモジュールに対応していない。
あるいは同様の別の矛盾が起きている。
- EBUSY
-
モジュールの初期化ルーチンが失敗した。
- EFAULT
-
name あるいは image が、プログラムがアクセスできる
アドレス空間の外部である。
関連項目
create_module(2), delete_module(2), query_module(2)
Index
- 名前
-
- 書式
-
- このマニュアルについて
-
- 説明
-
- 返り値
-
- エラー
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 16:46:44 GMT, November 24, 2023