CREATE_MODULE

Section: Linux Programmer's Manual (2)
Updated: 2017-09-15
Index JM Home 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/ に書かれている。

関連キーワード

カーネル   メモリ   module   ローダブルモジュール   エントリ   スーパー   ユーザ   アドレス   格納   create   Kernel   時代   modutils   パッケージ   所収   マニュアル   Project   loadable   保持   予約   成功   常駐   要求   ヘッダ   連続

Linux マニュアル 一覧

関連するコマンド・関数

query_module.2   delete_module.2   get_kernel_syms.2   finit_module.2   init_module.2   afs_syscall.2
 

Index

名前
書式
説明
返り値
エラー
バージョン
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:38:56 GMT, October 11, 2026