other versions
other languages
CREATE_MODULE(2) | Linux Programmer's Manual | CREATE_MODULE(2) |
名前¶
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/ に書かれている。2014-05-10 | Linux |