CREATE_MODULE
Section: Linux Programmer's Manual (2)
Updated: 2017-09-15
Index
JM Home Page
roff page
名前
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 固有である。
注意
この廃止されたシステムコールは glibc ではサポートされていない。 glibc ヘッダーでは宣言は提供されていないが、紆余曲折があり、 バージョン
2.23 より前の glibc ではこのシステムコールに対する ABI
が公開されていた。そのため、このシステムコールを利用するには、自分のコードの中で手動でインターフェースを宣言すればよかった。 syscall(2)
を使ってシステムコールを起動できた。
関連項目
delete_module(2), init_module(2), query_module(2)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/ に書かれている。
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- バージョン
-
- 準拠
-
- 注意
-
- 関連項目
-
- この文書について
-
This document was created by
man2html,
using the manual pages.
Time: 16:46:41 GMT, November 24, 2023