INIT_MODULE

Section: Linux Module Support (2)
Updated: 26 Dec 1996
Index JM Home Page
 

名前

init_module - ローダブルモジュールのエントリを初期化する  

書式

#include <linux/module.h>

int init_module(const char *name, struct module *image);
 

説明

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
};

nextrefs 以外の全てのポインタ要素は、 モジュールの本体内部を指し、カーネル空間での適切な値で初期化される (つまりモジュールの残りの部分と共に再配置される)ことが期待される。

このシステムコールを使えるのはユーパーユーザだけである。  

返り値

成功した場合は 0 が返される。エラーの場合は -1 が返され、errno に適切な値が設定される。  

エラー

EPERM
呼び出しを行ったユーザがスーパーユーザでない。
ENOENT
その名前を持つモジュールが存在しない。
EINVAL
image スロットの一部に誤った値が入っているか、 image->name が元のモジュールの名前に一致していないか、 image->deps エントリの一部がロードされたモジュールに対応していない。 あるいは同様の別の矛盾が起きている。
EBUSY
モジュールの初期化ルーチンが失敗した。
EFAULT
name あるいは image が、プログラムがアクセスできる アドレス空間の外部である。
 

関連項目

create_module(2), delete_module(2), query_module(2)

関連キーワード

module, モジュール, struct, INIT, unsigned, init, long, 名前, int, エラー

Linux マニュアル 一覧

[man1] [man2] [man3] [man4] [man5] [man6] [man7] [man8]
[a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t] [u] [v] [w] [x] [y] [z]

 

Index

名前
書式
説明
返り値
エラー
関連項目

This document was created by man2html, using the manual pages.
Time: 12:08:55 GMT, June 11, 2022